kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Simplify dpihw calculation on gl124
rodzic
028c9d398f
commit
c0a94b9288
|
@ -336,7 +336,9 @@ gl124_init_registers (Genesys_Device * dev)
|
|||
|
||||
// fine tune upon device description
|
||||
const auto& sensor = sanei_genesys_find_sensor_any(dev);
|
||||
sanei_genesys_set_dpihw(dev->reg, sensor, sensor.optical_res);
|
||||
const auto& dpihw_sensor = sanei_genesys_find_sensor(dev, sensor.optical_res,
|
||||
3, ScanMethod::FLATBED);
|
||||
sanei_genesys_set_dpihw(dev->reg, dpihw_sensor, 0);
|
||||
}
|
||||
|
||||
/**@brief send slope table for motor movement
|
||||
|
@ -688,7 +690,6 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
const ScanSession& session)
|
||||
{
|
||||
DBG_HELPER_ARGS(dbg, "exposure_time=%d", exposure_time);
|
||||
unsigned int dpihw;
|
||||
GenesysRegister *r;
|
||||
uint32_t expmax;
|
||||
|
||||
|
@ -696,11 +697,6 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
unsigned ccd_pixels_per_system_pixel = sensor.ccd_pixels_per_system_pixel();
|
||||
DBG(DBG_io2, "%s: ccd_pixels_per_system_pixel=%d\n", __func__, ccd_pixels_per_system_pixel);
|
||||
|
||||
// to manage high resolution device while keeping good low resolution scanning speed, we
|
||||
// make hardware dpi vary
|
||||
dpihw = sensor.get_register_hwdpi(session.output_resolution * ccd_pixels_per_system_pixel);
|
||||
DBG(DBG_io2, "%s: dpihw=%d\n", __func__, dpihw);
|
||||
|
||||
gl124_setup_sensor(dev, sensor, reg);
|
||||
|
||||
dev->cmd_set->set_fe(dev, sensor, AFE_SET);
|
||||
|
@ -765,7 +761,10 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
|
|||
}
|
||||
}
|
||||
|
||||
sanei_genesys_set_dpihw(*reg, sensor, dpihw);
|
||||
const auto& dpihw_sensor = sanei_genesys_find_sensor(dev, session.output_resolution,
|
||||
session.params.channels,
|
||||
session.params.scan_method);
|
||||
sanei_genesys_set_dpihw(*reg, dpihw_sensor, 0);
|
||||
|
||||
if (should_enable_gamma(session, sensor)) {
|
||||
reg->find_reg(REG_0x05).value |= REG_0x05_GMMENB;
|
||||
|
|
|
@ -1486,12 +1486,10 @@ void CommandSetGl843::init_regs_for_shading(Genesys_Device* dev, const Genesys_S
|
|||
|
||||
if (should_calibrate_only_active_area(*dev, dev->settings)) {
|
||||
float offset = get_model_x_offset_ta(*dev, dev->settings);
|
||||
offset /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution);
|
||||
offset = static_cast<float>((offset * resolution) / MM_PER_INCH);
|
||||
offset = static_cast<float>((offset * dev->settings.xres) / MM_PER_INCH);
|
||||
|
||||
float size = dev->model->x_size_ta;
|
||||
size /= calib_sensor.get_ccd_size_divisor_for_dpi(resolution);
|
||||
size = static_cast<float>((size * resolution) / MM_PER_INCH);
|
||||
size = static_cast<float>((size * dev->settings.xres) / MM_PER_INCH);
|
||||
|
||||
calib_pixels_offset = static_cast<std::size_t>(offset);
|
||||
calib_pixels = static_cast<std::size_t>(size);
|
||||
|
|
|
@ -2062,6 +2062,7 @@ void genesys_init_sensor_tables()
|
|||
{
|
||||
struct CustomSensorSettings {
|
||||
ValueFilterAny<unsigned> resolutions;
|
||||
unsigned register_dpihw_override;
|
||||
int exposure_lperiod;
|
||||
SensorExposure exposure;
|
||||
Ratio pixel_count_ratio;
|
||||
|
@ -2071,7 +2072,7 @@ void genesys_init_sensor_tables()
|
|||
};
|
||||
|
||||
CustomSensorSettings custom_settings[] = {
|
||||
{ { 75 }, 4608, { 462, 609, 453 }, Ratio{1, 4}, 4, std::vector<unsigned>{}, {
|
||||
{ { 75 }, 600, 4608, { 462, 609, 453 }, Ratio{1, 4}, 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 },
|
||||
|
@ -2088,7 +2089,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 100 }, 4608, { 462, 609, 453 }, Ratio{1, 4}, 3, std::vector<unsigned>{}, {
|
||||
{ { 100 }, 600, 4608, { 462, 609, 453 }, Ratio{1, 4}, 3, 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 },
|
||||
|
@ -2105,7 +2106,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 150 }, 4608, { 462, 609, 453 }, Ratio{1, 4}, 2, std::vector<unsigned>{}, {
|
||||
{ { 150 }, 600, 4608, { 462, 609, 453 }, Ratio{1, 4}, 2, 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 },
|
||||
|
@ -2122,7 +2123,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 300 }, 4608, { 462, 609, 453 }, Ratio{1, 4}, 1, std::vector<unsigned>{}, {
|
||||
{ { 300 }, 600, 4608, { 462, 609, 453 }, Ratio{1, 4}, 1, 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 },
|
||||
|
@ -2139,7 +2140,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 600 }, 5360, { 823, 1117, 805 }, Ratio{1, 4}, 1, std::vector<unsigned>{}, {
|
||||
{ { 600 }, 600, 5360, { 823, 1117, 805 }, Ratio{1, 4}, 1, 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 },
|
||||
|
@ -2156,7 +2157,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 1200 }, 10528, { 6071, 6670, 6042 }, Ratio{1, 4}, 1, { 0, 1 }, {
|
||||
{ { 1200 }, 1200, 10528, { 6071, 6670, 6042 }, Ratio{1, 4}, 1, { 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 },
|
||||
|
@ -2173,7 +2174,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x22 },
|
||||
}
|
||||
},
|
||||
{ { 2400 }, 20864, { 7451, 8661, 7405 }, Ratio{1, 4}, 1, { 0, 2, 1, 3 }, {
|
||||
{ { 2400 }, 2400, 20864, { 7451, 8661, 7405 }, Ratio{1, 4}, 1, { 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 },
|
||||
|
@ -2194,6 +2195,7 @@ void genesys_init_sensor_tables()
|
|||
|
||||
for (const auto& setting : custom_settings) {
|
||||
sensor.resolutions = setting.resolutions;
|
||||
sensor.register_dpihw_override = setting.register_dpihw_override;
|
||||
sensor.exposure_lperiod = setting.exposure_lperiod;
|
||||
sensor.exposure = setting.exposure;
|
||||
sensor.pixel_count_ratio = setting.pixel_count_ratio;
|
||||
|
@ -2221,6 +2223,7 @@ void genesys_init_sensor_tables()
|
|||
{
|
||||
struct CustomSensorSettings {
|
||||
ValueFilterAny<unsigned> resolutions;
|
||||
unsigned register_dpihw_override;
|
||||
int exposure_lperiod;
|
||||
SensorExposure exposure;
|
||||
Ratio pixel_count_ratio;
|
||||
|
@ -2230,7 +2233,7 @@ void genesys_init_sensor_tables()
|
|||
};
|
||||
|
||||
CustomSensorSettings custom_settings[] = {
|
||||
{ { 75 }, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 4, std::vector<unsigned>{}, {
|
||||
{ { 75 }, 600, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 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 },
|
||||
|
@ -2247,7 +2250,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 100 }, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 3, std::vector<unsigned>{}, {
|
||||
{ { 100 }, 600, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 3, 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 },
|
||||
|
@ -2264,7 +2267,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 150 }, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 2, std::vector<unsigned>{}, {
|
||||
{ { 150 }, 600, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 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 },
|
||||
|
@ -2281,7 +2284,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 300 }, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 1, std::vector<unsigned>{}, {
|
||||
{ { 300 }, 600, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 1, 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 },
|
||||
|
@ -2298,7 +2301,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 600 }, 5360, { 2394, 2444, 2144 }, Ratio{1, 4}, 1, std::vector<unsigned>{}, {
|
||||
{ { 600 }, 600, 5360, { 2394, 2444, 2144 }, Ratio{1, 4}, 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 },
|
||||
|
@ -2315,7 +2318,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 1200 }, 10528, { 4694, 4644, 4094 }, Ratio{1, 2}, 1, std::vector<unsigned>{}, {
|
||||
{ { 1200 }, 1200, 10528, { 4694, 4644, 4094 }, Ratio{1, 2}, 1, 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 },
|
||||
|
@ -2332,7 +2335,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
},
|
||||
},
|
||||
{ { 2400 }, 20864, { 8944, 8144, 7994 }, Ratio{1, 1}, 1, std::vector<unsigned>{}, {
|
||||
{ { 2400 }, 2400, 20864, { 8944, 8144, 7994 }, Ratio{1, 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 },
|
||||
|
@ -2353,6 +2356,7 @@ void genesys_init_sensor_tables()
|
|||
|
||||
for (const auto& setting : custom_settings) {
|
||||
sensor.resolutions = setting.resolutions;
|
||||
sensor.register_dpihw_override = setting.register_dpihw_override;
|
||||
sensor.exposure_lperiod = setting.exposure_lperiod;
|
||||
sensor.exposure = setting.exposure;
|
||||
sensor.pixel_count_ratio = setting.pixel_count_ratio;
|
||||
|
@ -2380,6 +2384,7 @@ void genesys_init_sensor_tables()
|
|||
{
|
||||
struct CustomSensorSettings {
|
||||
ValueFilterAny<unsigned> resolutions;
|
||||
unsigned register_dpihw_override;
|
||||
int exposure_lperiod;
|
||||
SensorExposure exposure;
|
||||
Ratio pixel_count_ratio;
|
||||
|
@ -2389,7 +2394,7 @@ void genesys_init_sensor_tables()
|
|||
};
|
||||
|
||||
CustomSensorSettings custom_settings[] = {
|
||||
{ { 75 }, 2768, { 388, 574, 393 }, Ratio{1, 4}, 4, std::vector<unsigned>{}, {
|
||||
{ { 75 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 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 },
|
||||
|
@ -2407,7 +2412,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 100 }, 2768, { 388, 574, 393 }, Ratio{1, 4}, 3, std::vector<unsigned>{}, {
|
||||
{ { 100 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 3, 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 },
|
||||
|
@ -2425,7 +2430,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 150 }, 2768, { 388, 574, 393 }, Ratio{1, 4}, 2, std::vector<unsigned>{}, {
|
||||
{ { 150 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 2, 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 },
|
||||
|
@ -2443,7 +2448,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 300 }, 2768, { 388, 574, 393 }, Ratio{1, 4}, 1, std::vector<unsigned>{}, {
|
||||
{ { 300 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 1, 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 },
|
||||
|
@ -2461,7 +2466,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 600 }, 5360, { 388, 574, 393 }, Ratio{1, 4}, 1, std::vector<unsigned>{}, {
|
||||
{ { 600 }, 600, 5360, { 388, 574, 393 }, Ratio{1, 4}, 1, 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 },
|
||||
|
@ -2479,7 +2484,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 1200 }, 10528, { 388, 574, 393 }, Ratio{1, 4}, 1, {0, 1}, {
|
||||
{ { 1200 }, 1200, 10528, { 388, 574, 393 }, Ratio{1, 4}, 1, {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 },
|
||||
|
@ -2497,7 +2502,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x22 },
|
||||
},
|
||||
},
|
||||
{ { 2400 }, 20864, { 6839, 8401, 6859 }, Ratio{1, 4}, 1, {0, 2, 1, 3}, {
|
||||
{ { 2400 }, 2400, 20864, { 6839, 8401, 6859 }, Ratio{1, 4}, 1, {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 },
|
||||
|
@ -2519,6 +2524,7 @@ void genesys_init_sensor_tables()
|
|||
|
||||
for (const auto& setting : custom_settings) {
|
||||
sensor.resolutions = setting.resolutions;
|
||||
sensor.register_dpihw_override = setting.register_dpihw_override;
|
||||
sensor.exposure_lperiod = setting.exposure_lperiod;
|
||||
sensor.exposure = setting.exposure;
|
||||
sensor.pixel_count_ratio = setting.pixel_count_ratio;
|
||||
|
@ -2546,6 +2552,7 @@ void genesys_init_sensor_tables()
|
|||
{
|
||||
struct CustomSensorSettings {
|
||||
ValueFilterAny<unsigned> resolutions;
|
||||
unsigned register_dpihw_override;
|
||||
int exposure_lperiod;
|
||||
SensorExposure exposure;
|
||||
Ratio pixel_count_ratio;
|
||||
|
@ -2555,7 +2562,7 @@ void genesys_init_sensor_tables()
|
|||
};
|
||||
|
||||
CustomSensorSettings custom_settings[] = {
|
||||
{ { 75 }, 2768, { 388, 574, 393 }, Ratio{1, 4}, 4, std::vector<unsigned>{}, {
|
||||
{ { 75 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 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 },
|
||||
|
@ -2573,7 +2580,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 100 }, 2768, { 388, 574, 393 }, Ratio{1, 4}, 3, std::vector<unsigned>{}, {
|
||||
{ { 100 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 3, 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 },
|
||||
|
@ -2591,7 +2598,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 150 }, 2768, { 388, 574, 393 }, Ratio{1, 4}, 2, std::vector<unsigned>{}, {
|
||||
{ { 150 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 2, 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 },
|
||||
|
@ -2609,7 +2616,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 300 }, 2768, { 388, 574, 393 }, Ratio{1, 4}, 1, std::vector<unsigned>{}, {
|
||||
{ { 300 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 1, 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 },
|
||||
|
@ -2627,7 +2634,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 600 }, 5360, { 388, 574, 393 }, Ratio{1, 4}, 1, std::vector<unsigned>{}, {
|
||||
{ { 600 }, 600, 5360, { 388, 574, 393 }, Ratio{1, 4}, 1, 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 },
|
||||
|
@ -2645,7 +2652,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x21 },
|
||||
}
|
||||
},
|
||||
{ { 1200 }, 10528, { 388, 574, 393 }, Ratio{1, 4}, 1, {0, 1}, {
|
||||
{ { 1200 }, 1200, 10528, { 388, 574, 393 }, Ratio{1, 4}, 1, {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 },
|
||||
|
@ -2663,7 +2670,7 @@ void genesys_init_sensor_tables()
|
|||
{ 0x98, 0x22 },
|
||||
}
|
||||
},
|
||||
{ { 2400 }, 20864, { 6839, 8401, 6859 }, Ratio{1, 4}, 1, {0, 2, 1, 3}, {
|
||||
{ { 2400 }, 2400, 20864, { 6839, 8401, 6859 }, Ratio{1, 4}, 1, {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 },
|
||||
|
@ -2685,6 +2692,7 @@ void genesys_init_sensor_tables()
|
|||
|
||||
for (const auto& setting : custom_settings) {
|
||||
sensor.resolutions = setting.resolutions;
|
||||
sensor.register_dpihw_override = setting.register_dpihw_override;
|
||||
sensor.exposure_lperiod = setting.exposure_lperiod;
|
||||
sensor.exposure = setting.exposure;
|
||||
sensor.pixel_count_ratio = setting.pixel_count_ratio;
|
||||
|
|
Ładowanie…
Reference in New Issue