genesys: Use output_pixel_offset for CCD offsets on gl646

merge-requests/213/head^2
Povilas Kanapickas 2020-04-13 07:23:37 +03:00
rodzic 1fc00f2b96
commit 648a24830f
2 zmienionych plików z 67 dodań i 56 usunięć

Wyświetl plik

@ -830,12 +830,7 @@ void compute_session_pixel_offsets(const Genesys_Device* dev, ScanSession& s,
unsigned ccd_pixels_per_system_pixel = sensor.ccd_pixels_per_system_pixel();
if (dev->model->asic_type == AsicType::GL646) {
// startx cannot be below dummy pixel value
s.pixel_startx = sensor.dummy_pixel;
s.pixel_startx += s.params.startx * sensor.optical_res / s.params.xres;
s.pixel_startx += s.output_startx * sensor.optical_res / s.params.xres;
s.pixel_endx = s.pixel_startx + s.optical_pixels * s.ccd_size_divisor;
} else if (dev->model->asic_type == AsicType::GL841) {

Wyświetl plik

@ -119,19 +119,21 @@ void genesys_init_sensor_tables()
{
ValueFilterAny<unsigned> resolutions;
unsigned register_dpiset;
unsigned output_pixel_offset;
};
CustomSensorSettings custom_settings[] = {
{ { 75 }, 150 },
{ { 150 }, 300 },
{ { 300 }, 600 },
{ { 600 }, 1200 },
{ { 1200 }, 2400 },
{ { 75 }, 150, 4 },
{ { 150 }, 300, 8 },
{ { 300 }, 600, 16 },
{ { 600 }, 1200, 32 },
{ { 1200 }, 2400, 64 },
};
for (const CustomSensorSettings& setting : custom_settings) {
sensor.resolutions = setting.resolutions;
sensor.register_dpiset = setting.register_dpiset;
sensor.output_pixel_offset = setting.output_pixel_offset;
s_sensors->push_back(sensor);
}
}
@ -160,18 +162,20 @@ void genesys_init_sensor_tables()
struct CustomSensorSettings
{
ValueFilterAny<unsigned> resolutions;
unsigned output_pixel_offset;
};
CustomSensorSettings custom_settings[] = {
{ { 75 } },
{ { 150 } },
{ { 300 } },
{ { 600 } },
{ { 75 }, 10 },
{ { 150 }, 21 },
{ { 300 }, 42 },
{ { 600 }, 85 },
};
for (const CustomSensorSettings& setting : custom_settings) {
sensor.resolutions = setting.resolutions;
sensor.register_dpiset = setting.resolutions.values()[0];
sensor.output_pixel_offset = setting.output_pixel_offset;
s_sensors->push_back(sensor);
}
}
@ -201,19 +205,21 @@ void genesys_init_sensor_tables()
{
ValueFilterAny<unsigned> resolutions;
unsigned register_dpiset;
unsigned output_pixel_offset;
};
CustomSensorSettings custom_settings[] = {
{ { 75 }, 150 },
{ { 150 }, 300 },
{ { 300 }, 600 },
{ { 600 }, 1200 },
{ { 1200 }, 2400 },
{ { 75 }, 150, 4 },
{ { 150 }, 300, 8 },
{ { 300 }, 600, 16 },
{ { 600 }, 1200, 32 },
{ { 1200 }, 2400, 64 },
};
for (const CustomSensorSettings& setting : custom_settings) {
sensor.resolutions = setting.resolutions;
sensor.register_dpiset = setting.register_dpiset;
sensor.output_pixel_offset = setting.output_pixel_offset;
s_sensors->push_back(sensor);
}
}
@ -248,11 +254,12 @@ void genesys_init_sensor_tables()
unsigned exposure_lperiod;
unsigned ccd_size_divisor;
Ratio pixel_count_ratio;
unsigned output_pixel_offset;
GenesysRegisterSettingSet custom_regs;
};
CustomSensorSettings custom_settings[] = {
{ { 50 }, 100, 12000, 2, Ratio{1, 2}, {
{ { 50 }, 100, 12000, 2, Ratio{1, 2}, 0, {
{ 0x08, 0x00 }, { 0x09, 0x05 }, { 0x0a, 0x06 }, { 0x0b, 0x08 },
{ 0x16, 0x0b }, { 0x17, 0x0a }, { 0x18, 0x28 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x03 },
@ -261,7 +268,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 75 }, 150, 11000, 2, Ratio{1, 2}, {
{ { 75 }, 150, 11000, 2, Ratio{1, 2}, 1, {
{ 0x08, 0x00 }, { 0x09, 0x05 }, { 0x0a, 0x06 }, { 0x0b, 0x08 },
{ 0x16, 0x0b }, { 0x17, 0x0a }, { 0x18, 0x28 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x03 },
@ -270,7 +277,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 100 }, 200, 11000, 2, Ratio{1, 2}, {
{ { 100 }, 200, 11000, 2, Ratio{1, 2}, 1, {
{ 0x08, 0x00 }, { 0x09, 0x05 }, { 0x0a, 0x06 }, { 0x0b, 0x08 },
{ 0x16, 0x0b }, { 0x17, 0x0a }, { 0x18, 0x28 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x03 },
@ -279,7 +286,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 150 }, 300, 11000, 2, Ratio{1, 2}, {
{ { 150 }, 300, 11000, 2, Ratio{1, 2}, 2, {
{ 0x08, 0x00 }, { 0x09, 0x05 }, { 0x0a, 0x06 }, { 0x0b, 0x08 },
{ 0x16, 0x0b }, { 0x17, 0x0a }, { 0x18, 0x28 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x03 },
@ -288,7 +295,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 200 }, 400, 11000, 2, Ratio{1, 2}, {
{ { 200 }, 400, 11000, 2, Ratio{1, 2}, 2, {
{ 0x08, 0x00 }, { 0x09, 0x05 }, { 0x0a, 0x06 }, { 0x0b, 0x08 },
{ 0x16, 0x0b }, { 0x17, 0x0a }, { 0x18, 0x28 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x03 },
@ -297,7 +304,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 300 }, 600, 11000, 2, Ratio{1, 2}, {
{ { 300 }, 600, 11000, 2, Ratio{1, 2}, 4, {
{ 0x08, 0x00 }, { 0x09, 0x05 }, { 0x0a, 0x06 }, { 0x0b, 0x08 },
{ 0x16, 0x0b }, { 0x17, 0x0a }, { 0x18, 0x28 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x03 },
@ -306,7 +313,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 400 }, 800, 11000, 2, Ratio{1, 2}, {
{ { 400 }, 800, 11000, 2, Ratio{1, 2}, 5, {
{ 0x08, 0x00 }, { 0x09, 0x05 }, { 0x0a, 0x06 }, { 0x0b, 0x08 },
{ 0x16, 0x0b }, { 0x17, 0x0a }, { 0x18, 0x28 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x03 },
@ -315,7 +322,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 600 }, 1200, 11000, 2, Ratio{1, 2}, {
{ { 600 }, 1200, 11000, 2, Ratio{1, 2}, 8, {
{ 0x08, 0x00 }, { 0x09, 0x05 }, { 0x0a, 0x06 }, { 0x0b, 0x08 },
{ 0x16, 0x0b }, { 0x17, 0x0a }, { 0x18, 0x28 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x03 },
@ -324,7 +331,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 1200 }, 1200, 11000, 1, Ratio{1, 1}, {
{ { 1200 }, 1200, 11000, 1, Ratio{1, 1}, 16, {
{ 0x08, 0x0d }, { 0x09, 0x0f }, { 0x0a, 0x11 }, { 0x0b, 0x13 },
{ 0x16, 0x0b }, { 0x17, 0x0a }, { 0x18, 0x30 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x03 },
@ -342,6 +349,7 @@ void genesys_init_sensor_tables()
sensor.exposure_lperiod = setting.exposure_lperiod;
sensor.ccd_size_divisor = setting.ccd_size_divisor;
sensor.pixel_count_ratio = setting.pixel_count_ratio;
sensor.output_pixel_offset = setting.output_pixel_offset;
sensor.custom_regs = setting.custom_regs;
s_sensors->push_back(sensor);
}
@ -375,11 +383,12 @@ void genesys_init_sensor_tables()
unsigned register_dpiset;
unsigned exposure_lperiod;
Ratio pixel_count_ratio;
unsigned output_pixel_offset;
GenesysRegisterSettingSet custom_regs;
};
CustomSensorSettings custom_settings[] = {
{ { 50 }, 200, 7211, Ratio{1, 4}, {
{ { 50 }, 200, 7211, Ratio{1, 4}, 0, {
{ 0x08, 0x14 }, { 0x09, 0x15 }, { 0x0a, 0x00 }, { 0x0b, 0x00 },
{ 0x16, 0xbf }, { 0x17, 0x08 }, { 0x18, 0x3f }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x02 },
@ -388,7 +397,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 100 }, 400, 7211, Ratio{1, 4}, {
{ { 100 }, 400, 7211, Ratio{1, 4}, 1, {
{ 0x08, 0x14 }, { 0x09, 0x15 }, { 0x0a, 0x00 }, { 0x0b, 0x00 },
{ 0x16, 0xbf }, { 0x17, 0x08 }, { 0x18, 0x3f }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x02 },
@ -397,7 +406,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 150 }, 600, 7211, Ratio{1, 4}, {
{ { 150 }, 600, 7211, Ratio{1, 4}, 1, {
{ 0x08, 0x14 }, { 0x09, 0x15 }, { 0x0a, 0x00 }, { 0x0b, 0x00 },
{ 0x16, 0xbf }, { 0x17, 0x08 }, { 0x18, 0x3f }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x02 },
@ -406,7 +415,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 300 }, 1200, 8751, Ratio{1, 4}, {
{ { 300 }, 1200, 8751, Ratio{1, 4}, 3, {
{ 0x08, 0x14 }, { 0x09, 0x15 }, { 0x0a, 0x00 }, { 0x0b, 0x00 },
{ 0x16, 0xbf }, { 0x17, 0x08 }, { 0x18, 0x3f }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x02 },
@ -415,7 +424,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 600 }, 1200, 18760, Ratio{1, 2}, {
{ { 600 }, 1200, 18760, Ratio{1, 2}, 7, {
{ 0x08, 0x0e }, { 0x09, 0x0f }, { 0x0a, 0x00 }, { 0x0b, 0x00 },
{ 0x16, 0xbf }, { 0x17, 0x08 }, { 0x18, 0x31 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0x00 }, { 0x1d, 0x02 },
@ -424,7 +433,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x00 }, { 0x5c, 0x00 }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 1200 }, 1200, 21749, Ratio{1, 1}, {
{ { 1200 }, 1200, 21749, Ratio{1, 1}, 15, {
{ 0x08, 0x02 }, { 0x09, 0x04 }, { 0x0a, 0x00 }, { 0x0b, 0x00 },
{ 0x16, 0xbf }, { 0x17, 0x08 }, { 0x18, 0x30 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0xc0 }, { 0x1d, 0x42 },
@ -441,6 +450,7 @@ void genesys_init_sensor_tables()
sensor.register_dpiset = setting.register_dpiset;
sensor.exposure_lperiod = setting.exposure_lperiod;
sensor.pixel_count_ratio = setting.pixel_count_ratio;
sensor.output_pixel_offset = setting.output_pixel_offset;
sensor.custom_regs = setting.custom_regs;
s_sensors->push_back(sensor);
}
@ -475,11 +485,12 @@ void genesys_init_sensor_tables()
unsigned exposure_lperiod;
unsigned ccd_size_divisor;
Ratio pixel_count_ratio;
unsigned output_pixel_offset;
GenesysRegisterSettingSet custom_regs;
};
CustomSensorSettings custom_settings[] = {
{ { 75 }, 150, 4480, 2, Ratio{1, 2}, {
{ { 75 }, 150, 4480, 2, Ratio{1, 2}, 2, {
{ 0x08, 0x16 }, { 0x09, 0x00 }, { 0x0a, 0x01 }, { 0x0b, 0x03 },
{ 0x16, 0xb7 }, { 0x17, 0x0a }, { 0x18, 0x20 }, { 0x19, 0x2a },
{ 0x1a, 0x6a }, { 0x1b, 0x8a }, { 0x1c, 0x00 }, { 0x1d, 0x85 },
@ -488,7 +499,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x06 }, { 0x5c, 0x0b }, { 0x5d, 0x10 }, { 0x5e, 0x16 }
}
},
{ { 150 }, 300, 4350, 2, Ratio{1, 2}, {
{ { 150 }, 300, 4350, 2, Ratio{1, 2}, 5, {
{ 0x08, 0x16 }, { 0x09, 0x00 }, { 0x0a, 0x01 }, { 0x0b, 0x03 },
{ 0x16, 0xb7 }, { 0x17, 0x0a }, { 0x18, 0x20 }, { 0x19, 0x2a },
{ 0x1a, 0x6a }, { 0x1b, 0x8a }, { 0x1c, 0x00 }, { 0x1d, 0x85 },
@ -497,7 +508,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x06 }, { 0x5c, 0x0b }, { 0x5d, 0x10 }, { 0x5e, 0x16 }
}
},
{ { 300 }, 600, 4350, 2, Ratio{1, 2}, {
{ { 300 }, 600, 4350, 2, Ratio{1, 2}, 10, {
{ 0x08, 0x16 }, { 0x09, 0x00 }, { 0x0a, 0x01 }, { 0x0b, 0x03 },
{ 0x16, 0xb7 }, { 0x17, 0x0a }, { 0x18, 0x20 }, { 0x19, 0x2a },
{ 0x1a, 0x6a }, { 0x1b, 0x8a }, { 0x1c, 0x00 }, { 0x1d, 0x85 },
@ -506,7 +517,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x06 }, { 0x5c, 0x0b }, { 0x5d, 0x10 }, { 0x5e, 0x16 }
}
},
{ { 600 }, 600, 8700, 1, Ratio{1, 1}, {
{ { 600 }, 600, 8700, 1, Ratio{1, 1}, 20, {
{ 0x08, 0x01 }, { 0x09, 0x03 }, { 0x0a, 0x04 }, { 0x0b, 0x06 },
{ 0x16, 0xb7 }, { 0x17, 0x0a }, { 0x18, 0x20 }, { 0x19, 0x2a },
{ 0x1a, 0x6a }, { 0x1b, 0x8a }, { 0x1c, 0x00 }, { 0x1d, 0x05 },
@ -524,6 +535,7 @@ void genesys_init_sensor_tables()
sensor.exposure_lperiod = setting.exposure_lperiod;
sensor.ccd_size_divisor = setting.ccd_size_divisor;
sensor.pixel_count_ratio = setting.pixel_count_ratio;
sensor.output_pixel_offset = setting.output_pixel_offset;
sensor.custom_regs = setting.custom_regs;
s_sensors->push_back(sensor);
}
@ -624,19 +636,20 @@ void genesys_init_sensor_tables()
std::vector<unsigned> channels;
unsigned exposure_lperiod;
SensorExposure exposure;
unsigned output_pixel_offset;
};
CustomSensorSettings custom_settings[] = {
{ { 75 }, { 3 }, 5700, { 0x1644, 0x0c80, 0x092e } },
{ { 100 }, { 3 }, 5700, { 0x1644, 0x0c80, 0x092e } },
{ { 200 }, { 3 }, 5700, { 0x1644, 0x0c80, 0x092e } },
{ { 300 }, { 3 }, 9000, { 0x1644, 0x0c80, 0x092e } },
{ { 600 }, { 3 }, 16000, { 0x1644, 0x0c80, 0x092e } },
{ { 75 }, { 1 }, 16000, { 0x050a, 0x0fa0, 0x1010 } },
{ { 100 }, { 1 }, 7800, { 0x050a, 0x0fa0, 0x1010 } },
{ { 200 }, { 1 }, 11000, { 0x050a, 0x0fa0, 0x1010 } },
{ { 300 }, { 1 }, 13000, { 0x050a, 0x0fa0, 0x1010 } },
{ { 600 }, { 1 }, 24000, { 0x050a, 0x0fa0, 0x1010 } },
{ { 75 }, { 3 }, 5700, { 0x1644, 0x0c80, 0x092e }, 4 },
{ { 100 }, { 3 }, 5700, { 0x1644, 0x0c80, 0x092e }, 6 },
{ { 200 }, { 3 }, 5700, { 0x1644, 0x0c80, 0x092e }, 12 },
{ { 300 }, { 3 }, 9000, { 0x1644, 0x0c80, 0x092e }, 19 },
{ { 600 }, { 3 }, 16000, { 0x1644, 0x0c80, 0x092e }, 38 },
{ { 75 }, { 1 }, 16000, { 0x050a, 0x0fa0, 0x1010 }, 4 },
{ { 100 }, { 1 }, 7800, { 0x050a, 0x0fa0, 0x1010 }, 6 },
{ { 200 }, { 1 }, 11000, { 0x050a, 0x0fa0, 0x1010 }, 12 },
{ { 300 }, { 1 }, 13000, { 0x050a, 0x0fa0, 0x1010 }, 19 },
{ { 600 }, { 1 }, 24000, { 0x050a, 0x0fa0, 0x1010 }, 38 },
};
for (const CustomSensorSettings& setting : custom_settings)
@ -646,6 +659,7 @@ void genesys_init_sensor_tables()
sensor.register_dpiset = setting.resolutions.values()[0];
sensor.exposure_lperiod = setting.exposure_lperiod;
sensor.exposure = setting.exposure;
sensor.output_pixel_offset = setting.output_pixel_offset;
s_sensors->push_back(sensor);
}
}
@ -678,11 +692,12 @@ void genesys_init_sensor_tables()
unsigned register_dpiset;
unsigned exposure_lperiod;
Ratio pixel_count_ratio;
unsigned output_pixel_offset;
GenesysRegisterSettingSet custom_regs;
};
CustomSensorSettings custom_settings[] = {
{ { 50 }, 200, 5758, Ratio{1, 4}, {
{ { 50 }, 200, 5758, Ratio{1, 4}, 0, {
{ 0x08, 0x00 }, { 0x09, 0x0a }, { 0x0a, 0x0b }, { 0x0b, 0x0d },
{ 0x16, 0x33 }, { 0x17, 0x07 }, { 0x18, 0x33 }, { 0x19, 0x2a },
{ 0x1a, 0x02 }, { 0x1b, 0x13 }, { 0x1c, 0xc0 }, { 0x1d, 0x43 },
@ -691,7 +706,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x05 }, { 0x5c, 0x0a }, { 0x5d, 0x0f }, { 0x5e, 0x00 }
}
},
{ { 75 }, 300, 4879, Ratio{1, 4}, {
{ { 75 }, 300, 4879, Ratio{1, 4}, 1, {
{ 0x08, 0x00 }, { 0x09, 0x0a }, { 0x0a, 0x0b }, { 0x0b, 0x0d },
{ 0x16, 0x33 }, { 0x17, 0x07 }, { 0x18, 0x33 }, { 0x19, 0x2a },
{ 0x1a, 0x02 }, { 0x1b, 0x13 }, { 0x1c, 0xc0 }, { 0x1d, 0x43 },
@ -700,7 +715,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x05 }, { 0x5c, 0x0a }, { 0x5d, 0x0f }, { 0x5e, 0x00 }
}
},
{ { 100 }, 400, 4487, Ratio{1, 4}, {
{ { 100 }, 400, 4487, Ratio{1, 4}, 1, {
{ 0x08, 0x00 }, { 0x09, 0x0a }, { 0x0a, 0x0b }, { 0x0b, 0x0d },
{ 0x16, 0x33 }, { 0x17, 0x07 }, { 0x18, 0x33 }, { 0x19, 0x2a },
{ 0x1a, 0x02 }, { 0x1b, 0x13 }, { 0x1c, 0xc0 }, { 0x1d, 0x43 },
@ -709,7 +724,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x05 }, { 0x5c, 0x0a }, { 0x5d, 0x0f }, { 0x5e, 0x00 }
}
},
{ { 150 }, 600, 4879, Ratio{1, 4}, {
{ { 150 }, 600, 4879, Ratio{1, 4}, 2, {
{ 0x08, 0x00 }, { 0x09, 0x0a }, { 0x0a, 0x0b }, { 0x0b, 0x0d },
{ 0x16, 0x33 }, { 0x17, 0x07 }, { 0x18, 0x33 }, { 0x19, 0x2a },
{ 0x1a, 0x02 }, { 0x1b, 0x13 }, { 0x1c, 0xc0 }, { 0x1d, 0x43 },
@ -718,7 +733,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x05 }, { 0x5c, 0x0a }, { 0x5d, 0x0f }, { 0x5e, 0x00 }
}
},
{ { 300 }, 1200, 4503, Ratio{1, 4}, {
{ { 300 }, 1200, 4503, Ratio{1, 4}, 4, {
{ 0x08, 0x00 }, { 0x09, 0x0a }, { 0x0a, 0x0b }, { 0x0b, 0x0d },
{ 0x16, 0x33 }, { 0x17, 0x07 }, { 0x18, 0x33 }, { 0x19, 0x2a },
{ 0x1a, 0x02 }, { 0x1b, 0x13 }, { 0x1c, 0xc0 }, { 0x1d, 0x43 },
@ -727,7 +742,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x05 }, { 0x5c, 0x0a }, { 0x5d, 0x0f }, { 0x5e, 0x00 }
}
},
{ { 600 }, 1200, 10251, Ratio{1, 2}, {
{ { 600 }, 1200, 10251, Ratio{1, 2}, 8, {
{ 0x08, 0x00 }, { 0x09, 0x05 }, { 0x0a, 0x06 }, { 0x0b, 0x08 },
{ 0x16, 0x33 }, { 0x17, 0x07 }, { 0x18, 0x31 }, { 0x19, 0x2a },
{ 0x1a, 0x02 }, { 0x1b, 0x0e }, { 0x1c, 0xc0 }, { 0x1d, 0x43 },
@ -736,7 +751,7 @@ void genesys_init_sensor_tables()
{ 0x5b, 0x02 }, { 0x5c, 0x0e }, { 0x5d, 0x00 }, { 0x5e, 0x00 }
}
},
{ { 1200 }, 1200, 12750, Ratio{1, 1}, {
{ { 1200 }, 1200, 12750, Ratio{1, 1}, 16, {
{ 0x08, 0x0d }, { 0x09, 0x0f }, { 0x0a, 0x11 }, { 0x0b, 0x13 },
{ 0x16, 0x2b }, { 0x17, 0x07 }, { 0x18, 0x30 }, { 0x19, 0x2a },
{ 0x1a, 0x00 }, { 0x1b, 0x00 }, { 0x1c, 0xc0 }, { 0x1d, 0x43 },
@ -753,6 +768,7 @@ void genesys_init_sensor_tables()
sensor.register_dpiset = setting.register_dpiset;
sensor.exposure_lperiod = setting.exposure_lperiod;
sensor.pixel_count_ratio = setting.pixel_count_ratio;
sensor.output_pixel_offset = setting.output_pixel_offset;
sensor.custom_regs = setting.custom_regs;
s_sensors->push_back(sensor);
}