kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Move half CCD property to sensor definition
rodzic
7359412548
commit
90814ac7d3
|
@ -2281,10 +2281,9 @@ compute_averaged_planar (Genesys_Device * dev,
|
|||
*/
|
||||
res = dev->settings.xres;
|
||||
|
||||
/* duplicate half-ccd logic */
|
||||
if ((dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE) &&
|
||||
dev->settings.xres <= dev->sensor.optical_res / 2)
|
||||
res *= 2;
|
||||
if (dev->sensor.half_ccd_mode && dev->settings.xres <= dev->sensor.optical_res / 2) {
|
||||
res *= 2;
|
||||
}
|
||||
|
||||
/* this should be evenly dividable */
|
||||
basepixels = dev->sensor.optical_res / res;
|
||||
|
@ -2575,7 +2574,7 @@ compute_shifted_coefficients (Genesys_Device * dev,
|
|||
unsigned int patch_cnt = offset * 3; /* at start, offset of first patch */
|
||||
|
||||
x = dev->settings.xres;
|
||||
if ((dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE) &&
|
||||
if ((dev->sensor.half_ccd_mode) &&
|
||||
(dev->settings.xres <= dev->sensor.optical_res / 2))
|
||||
x *= 2; /* scanner is using half-ccd mode */
|
||||
basepixels = dev->sensor.optical_res / x; /*this should be evenly dividable */
|
||||
|
|
|
@ -331,6 +331,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CCD_5345;
|
||||
sensor.optical_res = 1200;
|
||||
sensor.half_ccd_mode = true;
|
||||
sensor.black_pixels = 48;
|
||||
sensor.dummy_pixel = 16;
|
||||
sensor.CCD_start_xoffset = 0;
|
||||
|
@ -375,6 +376,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CCD_HP2300;
|
||||
sensor.optical_res = 600;
|
||||
sensor.half_ccd_mode = true;
|
||||
sensor.black_pixels = 48;
|
||||
sensor.dummy_pixel = 20;
|
||||
sensor.CCD_start_xoffset = 0;
|
||||
|
@ -397,6 +399,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CCD_CANONLIDE35;
|
||||
sensor.optical_res = 1200;
|
||||
sensor.half_ccd_mode = true;
|
||||
sensor.black_pixels = 87;
|
||||
sensor.dummy_pixel = 87;
|
||||
sensor.CCD_start_xoffset = 0;
|
||||
|
@ -686,6 +689,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CCD_CS4400F;
|
||||
sensor.optical_res = 4800;
|
||||
sensor.half_ccd_mode = true; // FIXME: actually quarter CCD mode
|
||||
sensor.black_pixels = 50*8;
|
||||
// 31 at 600 dpi, 58 at 1200 dpi
|
||||
sensor.dummy_pixel = 20;
|
||||
|
@ -734,6 +738,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CCD_CS8600F;
|
||||
sensor.optical_res = 4800;
|
||||
sensor.half_ccd_mode = true; // FIXME: actually quarter CCD mode
|
||||
sensor.black_pixels = 31;
|
||||
sensor.dummy_pixel = 20;
|
||||
sensor.CCD_start_xoffset = 0; // not used at the moment
|
||||
|
@ -757,6 +762,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CCD_HP_N6310;
|
||||
sensor.optical_res = 2400;
|
||||
// sensor.half_ccd_mode = true; Possibly half CCD, needs checking
|
||||
sensor.black_pixels = 96;
|
||||
sensor.dummy_pixel = 26;
|
||||
sensor.CCD_start_xoffset = 128;
|
||||
|
@ -779,6 +785,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CIS_CANONLIDE110;
|
||||
sensor.optical_res = 2400;
|
||||
sensor.half_ccd_mode = true;
|
||||
sensor.black_pixels = 87;
|
||||
sensor.dummy_pixel = 16;
|
||||
sensor.CCD_start_xoffset = 303;
|
||||
|
@ -801,6 +808,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CIS_CANONLIDE120;
|
||||
sensor.optical_res = 2400;
|
||||
sensor.half_ccd_mode = true;
|
||||
sensor.black_pixels = 87;
|
||||
sensor.dummy_pixel = 16;
|
||||
sensor.CCD_start_xoffset = 303;
|
||||
|
@ -824,12 +832,13 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CIS_CANONLIDE210;
|
||||
sensor.optical_res = 2400;
|
||||
sensor.half_ccd_mode = true;
|
||||
sensor.black_pixels = 87;
|
||||
sensor.dummy_pixel = 16;
|
||||
sensor.CCD_start_xoffset = 303;
|
||||
sensor.sensor_pixels = 5168*4;
|
||||
sensor.fau_gain_white_ref = 210;
|
||||
sensor.gain_white_ref = 200,
|
||||
sensor.gain_white_ref = 200;
|
||||
sensor.regs_0x08_0x0b = {0x00, 0x00, 0x00, 0x00},
|
||||
// 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d
|
||||
sensor.regs_0x10_0x1d = {
|
||||
|
@ -846,6 +855,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CIS_CANONLIDE220;
|
||||
sensor.optical_res = 2400;
|
||||
sensor.half_ccd_mode = true;
|
||||
sensor.black_pixels = 87;
|
||||
sensor.dummy_pixel = 16;
|
||||
sensor.CCD_start_xoffset = 303;
|
||||
|
@ -868,6 +878,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CCD_PLUSTEK_3600;
|
||||
sensor.optical_res = 1200;
|
||||
sensor.half_ccd_mode = true;
|
||||
sensor.black_pixels = 87;
|
||||
sensor.dummy_pixel = 87;
|
||||
sensor.CCD_start_xoffset = 0;
|
||||
|
@ -934,6 +945,7 @@ void genesys_init_sensor_tables()
|
|||
sensor = Genesys_Sensor();
|
||||
sensor.sensor_id = CIS_CANONLIDE80,
|
||||
sensor.optical_res = 1200; // real hardware limit is 2400
|
||||
sensor.half_ccd_mode = true;
|
||||
sensor.black_pixels = 20;
|
||||
sensor.dummy_pixel = 6;
|
||||
// tuned to give 3*8 multiple startx coordinate during shading calibration
|
||||
|
@ -1622,8 +1634,7 @@ static Genesys_Model canon_lide_50_model = {
|
|||
GENESYS_FLAG_SKIP_WARMUP |
|
||||
GENESYS_FLAG_OFFSET_CALIBRATION |
|
||||
GENESYS_FLAG_DARK_WHITE_CALIBRATION |
|
||||
GENESYS_FLAG_CUSTOM_GAMMA |
|
||||
GENESYS_FLAG_HALF_CCD_MODE,
|
||||
GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_SCAN_SW |
|
||||
GENESYS_HAS_FILE_SW |
|
||||
GENESYS_HAS_EMAIL_SW |
|
||||
|
@ -1910,7 +1921,6 @@ static Genesys_Model canon_4400f_model = {
|
|||
GENESYS_FLAG_SKIP_WARMUP |
|
||||
GENESYS_FLAG_DARK_CALIBRATION |
|
||||
GENESYS_FLAG_FULL_HWDPI_MODE |
|
||||
GENESYS_FLAG_HALF_CCD_MODE | /* actually quarter CCD mode ... */
|
||||
GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW,
|
||||
100,
|
||||
|
@ -2030,8 +2040,7 @@ static Genesys_Model canon_8600f_model = {
|
|||
GENESYS_FLAG_DARK_CALIBRATION |
|
||||
GENESYS_FLAG_FULL_HWDPI_MODE |
|
||||
GENESYS_FLAG_CUSTOM_GAMMA |
|
||||
GENESYS_FLAG_SHADING_REPARK |
|
||||
GENESYS_FLAG_HALF_CCD_MODE,
|
||||
GENESYS_FLAG_SHADING_REPARK,
|
||||
GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW,
|
||||
50, // shading_lines
|
||||
50, // shading_ta_lines
|
||||
|
@ -2141,7 +2150,6 @@ static Genesys_Model canon_lide_110_model = {
|
|||
GENESYS_FLAG_SKIP_WARMUP
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_DARK_CALIBRATION
|
||||
| GENESYS_FLAG_HALF_CCD_MODE
|
||||
| GENESYS_FLAG_SHADING_REPARK
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW,
|
||||
|
@ -2196,7 +2204,6 @@ static Genesys_Model canon_lide_120_model = {
|
|||
GENESYS_FLAG_SKIP_WARMUP
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_DARK_CALIBRATION
|
||||
| GENESYS_FLAG_HALF_CCD_MODE
|
||||
| GENESYS_FLAG_SHADING_REPARK
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW,
|
||||
|
@ -2252,7 +2259,6 @@ static Genesys_Model canon_lide_210_model = {
|
|||
GENESYS_FLAG_SKIP_WARMUP
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_DARK_CALIBRATION
|
||||
| GENESYS_FLAG_HALF_CCD_MODE
|
||||
| GENESYS_FLAG_SHADING_REPARK
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EXTRA_SW,
|
||||
|
@ -2307,7 +2313,6 @@ static Genesys_Model canon_lide_220_model = {
|
|||
GENESYS_FLAG_SKIP_WARMUP
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_DARK_CALIBRATION
|
||||
| GENESYS_FLAG_HALF_CCD_MODE
|
||||
| GENESYS_FLAG_SHADING_REPARK
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_EXTRA_SW,
|
||||
|
@ -2531,8 +2536,7 @@ static Genesys_Model canon_lide_60_model = {
|
|||
| GENESYS_FLAG_SKIP_WARMUP
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_DARK_WHITE_CALIBRATION
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA
|
||||
| GENESYS_FLAG_HALF_CCD_MODE,
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
|
||||
GENESYS_HAS_COPY_SW /* Has four buttons: COPY, SCAN, PDF, EMAIL */
|
||||
| GENESYS_HAS_SCAN_SW
|
||||
|
@ -2589,8 +2593,7 @@ static Genesys_Model canon_lide_80_model = {
|
|||
GENESYS_FLAG_SKIP_WARMUP |
|
||||
GENESYS_FLAG_OFFSET_CALIBRATION |
|
||||
GENESYS_FLAG_DARK_WHITE_CALIBRATION |
|
||||
GENESYS_FLAG_CUSTOM_GAMMA |
|
||||
GENESYS_FLAG_HALF_CCD_MODE,
|
||||
GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_SCAN_SW |
|
||||
GENESYS_HAS_FILE_SW |
|
||||
GENESYS_HAS_EMAIL_SW |
|
||||
|
@ -2650,7 +2653,6 @@ static Genesys_Model hp2300c_model = {
|
|||
| GENESYS_FLAG_SEARCH_START
|
||||
| GENESYS_FLAG_DARK_CALIBRATION
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_HALF_CCD_MODE
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_SCAN_SW | GENESYS_HAS_COPY_SW,
|
||||
40,
|
||||
|
@ -2980,7 +2982,6 @@ static Genesys_Model medion_md5345_model = {
|
|||
| GENESYS_FLAG_STAGGERED_LINE
|
||||
| GENESYS_FLAG_DARK_CALIBRATION
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_HALF_CCD_MODE
|
||||
| GENESYS_FLAG_SHADING_NO_MOVE
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | GENESYS_HAS_OCR_SW | GENESYS_HAS_SCAN_SW,
|
||||
|
@ -3583,7 +3584,6 @@ static Genesys_Model visioneer_7100_model = {
|
|||
| GENESYS_FLAG_STAGGERED_LINE
|
||||
| GENESYS_FLAG_DARK_CALIBRATION
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_HALF_CCD_MODE
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | GENESYS_HAS_OCR_SW | GENESYS_HAS_SCAN_SW,
|
||||
40,
|
||||
|
@ -3640,7 +3640,6 @@ static Genesys_Model xerox_2400_model = {
|
|||
| GENESYS_FLAG_STAGGERED_LINE
|
||||
| GENESYS_FLAG_DARK_CALIBRATION
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_HALF_CCD_MODE
|
||||
| GENESYS_FLAG_CUSTOM_GAMMA,
|
||||
GENESYS_HAS_COPY_SW | GENESYS_HAS_EMAIL_SW | GENESYS_HAS_POWER_SW | GENESYS_HAS_OCR_SW | GENESYS_HAS_SCAN_SW,
|
||||
40,
|
||||
|
@ -3750,8 +3749,7 @@ static Genesys_Model plustek_3600_model = {
|
|||
| GENESYS_FLAG_SKIP_WARMUP
|
||||
| GENESYS_FLAG_DARK_CALIBRATION
|
||||
| GENESYS_FLAG_OFFSET_CALIBRATION
|
||||
| GENESYS_FLAG_LAZY_INIT
|
||||
| GENESYS_FLAG_HALF_CCD_MODE,/*
|
||||
| GENESYS_FLAG_LAZY_INIT,/*
|
||||
| GENESYS_FLAG_NO_CALIBRATION,*/
|
||||
GENESYS_HAS_NO_BUTTONS,
|
||||
7,
|
||||
|
@ -3811,7 +3809,6 @@ static Genesys_Model hpn6310_model = {
|
|||
| GENESYS_FLAG_CUSTOM_GAMMA
|
||||
| GENESYS_FLAG_SKIP_WARMUP
|
||||
| GENESYS_FLAG_NO_CALIBRATION,
|
||||
/* | GENESYS_FLAG_HALF_CCD_MODE,*/
|
||||
|
||||
GENESYS_HAS_NO_BUTTONS,
|
||||
100,
|
||||
|
|
|
@ -168,10 +168,10 @@ SANE_Status status=SANE_STATUS_GOOD;
|
|||
* @param xres required horizontal resolution
|
||||
* @return SANE_TRUE if half CCD mode enabled
|
||||
*/
|
||||
static SANE_Bool compute_half_ccd(Genesys_Model *model, int xres)
|
||||
static SANE_Bool compute_half_ccd(Genesys_Sensor* sensor, int xres)
|
||||
{
|
||||
/* we have 2 domains for ccd: xres below or above half ccd max dpi */
|
||||
if (xres<=300 && (model->flags & GENESYS_FLAG_HALF_CCD_MODE))
|
||||
if (xres<=300 && sensor->half_ccd_mode)
|
||||
{
|
||||
return SANE_TRUE;
|
||||
}
|
||||
|
@ -1300,7 +1300,7 @@ gl124_init_scan_regs (Genesys_Device * dev,
|
|||
"Flags : %x\n\n",
|
||||
__func__, xres, yres, lines, pixels, startx, starty, depth, channels, flags);
|
||||
|
||||
half_ccd=compute_half_ccd(dev->model, xres);
|
||||
half_ccd=compute_half_ccd(&dev->sensor, xres);
|
||||
|
||||
/* optical_res */
|
||||
optical_res = dev->sensor.optical_res;
|
||||
|
@ -1567,7 +1567,7 @@ gl124_calculate_current_setup (Genesys_Device * dev)
|
|||
pixels = dev->settings.pixels;
|
||||
lines = dev->settings.lines;
|
||||
|
||||
half_ccd=compute_half_ccd(dev->model, xres);
|
||||
half_ccd=compute_half_ccd(&dev->sensor, xres);
|
||||
|
||||
DBG(DBG_info,
|
||||
"%s:\n"
|
||||
|
@ -2401,7 +2401,7 @@ gl124_init_regs_for_shading (Genesys_Device * dev)
|
|||
resolution=dpihw;
|
||||
|
||||
/* if half CCD mode, use half resolution */
|
||||
if(compute_half_ccd(dev->model, dev->settings.xres)==SANE_TRUE)
|
||||
if(compute_half_ccd(&dev->sensor, dev->settings.xres)==SANE_TRUE)
|
||||
{
|
||||
resolution /= 2;
|
||||
dev->calib_lines /= 2;
|
||||
|
@ -2560,7 +2560,7 @@ gl124_init_regs_for_scan (Genesys_Device * dev)
|
|||
/* start */
|
||||
start = SANE_UNFIX (dev->model->x_offset);
|
||||
start += dev->settings.tl_x;
|
||||
if(compute_half_ccd(dev->model, dev->settings.xres)==SANE_TRUE)
|
||||
if(compute_half_ccd(&dev->sensor, dev->settings.xres)==SANE_TRUE)
|
||||
{
|
||||
start /=2;
|
||||
}
|
||||
|
@ -2820,7 +2820,7 @@ gl124_led_calibration (Genesys_Device * dev)
|
|||
channels = 3;
|
||||
depth=16;
|
||||
dpihw=sanei_genesys_compute_dpihw(dev, dev->settings.xres);
|
||||
half_ccd=compute_half_ccd(dev->model, dev->settings.xres);
|
||||
half_ccd=compute_half_ccd(&dev->sensor, dev->settings.xres);
|
||||
if(half_ccd==SANE_TRUE)
|
||||
{
|
||||
resolution = dpihw/2;
|
||||
|
|
|
@ -2740,7 +2740,7 @@ gl646_init_regs_for_shading (Genesys_Device * dev)
|
|||
DBG(DBG_proc, "%s: start\n", __func__);
|
||||
|
||||
/* when shading all (full width) line, we must adapt to half_ccd case */
|
||||
if (dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE)
|
||||
if (dev->sensor.half_ccd_mode)
|
||||
{
|
||||
/* walk the master mode list to find if half_ccd */
|
||||
if (is_half_ccd (dev->model->ccd_type, dev->settings.xres, SANE_TRUE) ==
|
||||
|
@ -4891,7 +4891,7 @@ gl646_search_strip (Genesys_Device * dev, SANE_Bool forward, SANE_Bool black)
|
|||
|
||||
DBG(DBG_proc, "%s: start\n", __func__);
|
||||
/* adapt to half_ccd case */
|
||||
if (dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE)
|
||||
if (dev->sensor.half_ccd_mode)
|
||||
{
|
||||
/* walk the master mode list to find if half_ccd */
|
||||
if (is_half_ccd (dev->model->ccd_type, res, SANE_TRUE) == SANE_TRUE)
|
||||
|
|
|
@ -2238,7 +2238,7 @@ independent of our calculated values:
|
|||
/* half_ccd */
|
||||
/* we have 2 domains for ccd: xres below or above half ccd max dpi */
|
||||
if (dev->sensor.optical_res < 2 * xres ||
|
||||
!(dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE)) {
|
||||
!(dev->sensor.half_ccd_mode)) {
|
||||
half_ccd = SANE_FALSE;
|
||||
} else {
|
||||
half_ccd = SANE_TRUE;
|
||||
|
@ -2605,7 +2605,7 @@ gl841_calculate_current_setup (Genesys_Device * dev)
|
|||
/* half_ccd */
|
||||
/* we have 2 domains for ccd: xres below or above half ccd max dpi */
|
||||
if ((dev->sensor.optical_res < 2 * xres) ||
|
||||
!(dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE)) {
|
||||
!(dev->sensor.half_ccd_mode)) {
|
||||
half_ccd = SANE_FALSE;
|
||||
} else {
|
||||
half_ccd = SANE_TRUE;
|
||||
|
|
|
@ -1460,7 +1460,7 @@ static struct GenesysPhysicalParams
|
|||
params.xres = xres;
|
||||
|
||||
if (dev->sensor.optical_res < 4 * xres ||
|
||||
!(dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE))
|
||||
!(dev->sensor.half_ccd_mode))
|
||||
{
|
||||
params.half_ccd = SANE_FALSE;
|
||||
} else {
|
||||
|
@ -1781,7 +1781,7 @@ gl843_calculate_current_setup (Genesys_Device * dev)
|
|||
|
||||
/* we have 2 domains for ccd: xres below or above half ccd max dpi */
|
||||
if ((dev->sensor.optical_res < 4 * xres) ||
|
||||
!(dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE))
|
||||
!(dev->sensor.half_ccd_mode))
|
||||
{
|
||||
half_ccd = SANE_FALSE;
|
||||
}
|
||||
|
|
|
@ -1154,7 +1154,7 @@ gl846_init_scan_regs (Genesys_Device * dev,
|
|||
|
||||
/* we may have 2 domains for ccd: xres below or above half ccd max dpi */
|
||||
if (dev->sensor.optical_res < 2 * xres ||
|
||||
!(dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE))
|
||||
!(dev->sensor.half_ccd_mode))
|
||||
{
|
||||
half_ccd = SANE_FALSE;
|
||||
}
|
||||
|
@ -1435,7 +1435,7 @@ gl846_calculate_current_setup (Genesys_Device * dev)
|
|||
/* half_ccd */
|
||||
/* we have 2 domains for ccd: xres below or above half ccd max dpi */
|
||||
if ((dev->sensor.optical_res < 2 * xres) ||
|
||||
!(dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE))
|
||||
!(dev->sensor.half_ccd_mode))
|
||||
{
|
||||
half_ccd = SANE_FALSE;
|
||||
}
|
||||
|
|
|
@ -1169,7 +1169,7 @@ gl847_init_scan_regs (Genesys_Device * dev,
|
|||
|
||||
/* we may have 2 domains for ccd: xres below or above half ccd max dpi */
|
||||
if (dev->sensor.optical_res < 2 * xres ||
|
||||
!(dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE))
|
||||
!(dev->sensor.half_ccd_mode))
|
||||
{
|
||||
half_ccd = SANE_FALSE;
|
||||
}
|
||||
|
@ -1450,7 +1450,7 @@ gl847_calculate_current_setup (Genesys_Device * dev)
|
|||
/* half_ccd */
|
||||
/* we have 2 domains for ccd: xres below or above half ccd max dpi */
|
||||
if ((dev->sensor.optical_res < 2 * xres) ||
|
||||
!(dev->model->flags & GENESYS_FLAG_HALF_CCD_MODE))
|
||||
!(dev->sensor.half_ccd_mode))
|
||||
{
|
||||
half_ccd = SANE_FALSE;
|
||||
}
|
||||
|
|
|
@ -147,7 +147,6 @@
|
|||
#define GENESYS_FLAG_DARK_WHITE_CALIBRATION (1 << 12) /**< yet another calibration method. does white and dark shading in one run, depending on a black and a white strip*/
|
||||
#define GENESYS_FLAG_CUSTOM_GAMMA (1 << 13) /**< allow custom gamma tables */
|
||||
#define GENESYS_FLAG_NO_CALIBRATION (1 << 14) /**< allow scanners to use skip the calibration, needed for sheetfed scanners */
|
||||
#define GENESYS_FLAG_HALF_CCD_MODE (1 << 15) /**< scanner has setting for half ccd mode */
|
||||
#define GENESYS_FLAG_SIS_SENSOR (1 << 16) /**< handling of multi-segments sensors in software */
|
||||
#define GENESYS_FLAG_SHADING_NO_MOVE (1 << 17) /**< scanner doesn't move sensor during shading calibration */
|
||||
#define GENESYS_FLAG_SHADING_REPARK (1 << 18) /**< repark head between shading scans */
|
||||
|
@ -424,6 +423,9 @@ struct Genesys_Sensor {
|
|||
// id of the sensor description
|
||||
uint8_t sensor_id = 0;
|
||||
int optical_res = 0;
|
||||
// half or quarter CCD mode
|
||||
bool half_ccd_mode = false;
|
||||
|
||||
int black_pixels = 0;
|
||||
// value of the dummy register
|
||||
int dummy_pixel = 0;
|
||||
|
|
Ładowanie…
Reference in New Issue