diff --git a/backend/genesys/gl124.cpp b/backend/genesys/gl124.cpp index a898d473f..c39694b87 100644 --- a/backend/genesys/gl124.cpp +++ b/backend/genesys/gl124.cpp @@ -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; diff --git a/backend/genesys/gl843.cpp b/backend/genesys/gl843.cpp index 95137c78e..a05dbae36 100644 --- a/backend/genesys/gl843.cpp +++ b/backend/genesys/gl843.cpp @@ -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((offset * resolution) / MM_PER_INCH); + offset = static_cast((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((size * resolution) / MM_PER_INCH); + size = static_cast((size * dev->settings.xres) / MM_PER_INCH); calib_pixels_offset = static_cast(offset); calib_pixels = static_cast(size); diff --git a/backend/genesys/tables_sensor.cpp b/backend/genesys/tables_sensor.cpp index b78ac8975..95c82c233 100644 --- a/backend/genesys/tables_sensor.cpp +++ b/backend/genesys/tables_sensor.cpp @@ -2062,6 +2062,7 @@ void genesys_init_sensor_tables() { struct CustomSensorSettings { ValueFilterAny 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{}, { + { { 75 }, 600, 4608, { 462, 609, 453 }, Ratio{1, 4}, 4, std::vector{}, { { 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{}, { + { { 100 }, 600, 4608, { 462, 609, 453 }, Ratio{1, 4}, 3, std::vector{}, { { 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{}, { + { { 150 }, 600, 4608, { 462, 609, 453 }, Ratio{1, 4}, 2, std::vector{}, { { 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{}, { + { { 300 }, 600, 4608, { 462, 609, 453 }, Ratio{1, 4}, 1, std::vector{}, { { 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{}, { + { { 600 }, 600, 5360, { 823, 1117, 805 }, Ratio{1, 4}, 1, std::vector{}, { { 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 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{}, { + { { 75 }, 600, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 4, std::vector{}, { { 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{}, { + { { 100 }, 600, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 3, std::vector{}, { { 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{}, { + { { 150 }, 600, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 2, std::vector{}, { { 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{}, { + { { 300 }, 600, 4608, { 1244, 1294, 1144 }, Ratio{1, 4}, 1, std::vector{}, { { 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{}, { + { { 600 }, 600, 5360, { 2394, 2444, 2144 }, Ratio{1, 4}, 1, std::vector{}, { { 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{}, { + { { 1200 }, 1200, 10528, { 4694, 4644, 4094 }, Ratio{1, 2}, 1, std::vector{}, { { 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{}, { + { { 2400 }, 2400, 20864, { 8944, 8144, 7994 }, Ratio{1, 1}, 1, std::vector{}, { { 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 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{}, { + { { 75 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 4, std::vector{}, { // { 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{}, { + { { 100 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 3, std::vector{}, { // { 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{}, { + { { 150 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 2, std::vector{}, { // { 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{}, { + { { 300 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 1, std::vector{}, { // { 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{}, { + { { 600 }, 600, 5360, { 388, 574, 393 }, Ratio{1, 4}, 1, std::vector{}, { // { 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 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{}, { + { { 75 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 4, std::vector{}, { // { 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{}, { + { { 100 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 3, std::vector{}, { // { 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{}, { + { { 150 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 2, std::vector{}, { // { 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{}, { + { { 300 }, 600, 2768, { 388, 574, 393 }, Ratio{1, 4}, 1, std::vector{}, { // { 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{}, { + { { 600 }, 600, 5360, { 388, 574, 393 }, Ratio{1, 4}, 1, std::vector{}, { // { 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;