genesys: Use common code path to compute session output_line_count

merge-requests/158/head
Povilas Kanapickas 2019-09-12 19:34:43 +03:00
rodzic 0cf4c1d555
commit 991eec63d5
8 zmienionych plików z 32 dodań i 64 usunięć

Wyświetl plik

@ -1068,7 +1068,6 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
int start; int start;
int bytes_per_line; int bytes_per_line;
int move; int move;
unsigned int lincnt;
unsigned int mflags; unsigned int mflags;
int exposure_time; int exposure_time;
@ -1128,10 +1127,6 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
session.params.depth, session.ccd_size_divisor, session.params.depth, session.ccd_size_divisor,
session.params.color_filter); session.params.color_filter);
/*** motor parameters ***/
lincnt = session.params.lines + session.max_color_shift_lines + session.num_staggered_lines;
/* add tl_y to base movement */ /* add tl_y to base movement */
move = session.params.starty; move = session.params.starty;
DBG(DBG_info, "%s: move=%d steps\n", __func__, move); DBG(DBG_info, "%s: move=%d steps\n", __func__, move);
@ -1144,7 +1139,8 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
mflags |= MOTOR_FLAG_FEED; mflags |= MOTOR_FLAG_FEED;
} }
gl124_init_motor_regs_scan(dev, sensor, reg, exposure_time, slope_dpi, scan_step_type, gl124_init_motor_regs_scan(dev, sensor, reg, exposure_time, slope_dpi, scan_step_type,
dev->model->is_cis ? lincnt * session.params.channels : lincnt, dev->model->is_cis ? session.output_line_count * session.params.channels :
session.output_line_count,
dummy, move, session.params.scan_mode, mflags); dummy, move, session.params.scan_mode, mflags);
/*** prepares data reordering ***/ /*** prepares data reordering ***/
@ -1174,7 +1170,7 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->out_buffer.clear(); dev->out_buffer.clear();
dev->out_buffer.alloc((8 * dev->settings.pixels * session.params.channels * session.params.depth) / 8); dev->out_buffer.alloc((8 * dev->settings.pixels * session.params.channels * session.params.depth) / 8);
dev->read_bytes_left = bytes_per_line * lincnt; dev->read_bytes_left = bytes_per_line * session.output_line_count;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left); DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
dev->read_active = SANE_TRUE; dev->read_active = SANE_TRUE;
@ -1182,7 +1178,7 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
DBG(DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels); DBG(DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels);
dev->current_setup.lines = lincnt; dev->current_setup.lines = session.output_line_count;
dev->current_setup.exposure_time = exposure_time; dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres; dev->current_setup.xres = session.params.xres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;
@ -1207,7 +1203,6 @@ gl124_calculate_current_setup (Genesys_Device * dev, const Genesys_Sensor& senso
{ {
int start; int start;
unsigned int lincnt;
int exposure_time; int exposure_time;
int dpihw; int dpihw;
@ -1255,12 +1250,10 @@ gl124_calculate_current_setup (Genesys_Device * dev, const Genesys_Sensor& senso
session.ccd_size_divisor); session.ccd_size_divisor);
dev->segnb = sensor_profile.custom_regs.get_value(0x98) & 0x0f; dev->segnb = sensor_profile.custom_regs.get_value(0x98) & 0x0f;
lincnt = session.params.lines + session.max_color_shift_lines + session.num_staggered_lines;
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
DBG (DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels); DBG (DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels);
dev->current_setup.lines = lincnt; dev->current_setup.lines = session.output_line_count;
dev->current_setup.exposure_time = exposure_time; dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres; dev->current_setup.xres = session.params.xres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;

Wyświetl plik

@ -328,7 +328,6 @@ static void gl646_setup_registers(Genesys_Device* dev,
debug_dump(DBG_info, sensor); debug_dump(DBG_info, sensor);
uint32_t move = session.params.starty; uint32_t move = session.params.starty;
uint32_t linecnt = session.params.lines;
uint32_t startx = 0; uint32_t startx = 0;
/* pixels are allways given at full CCD optical resolution */ /* pixels are allways given at full CCD optical resolution */
@ -366,7 +365,7 @@ static void gl646_setup_registers(Genesys_Device* dev,
size_t read_buffer_size; size_t read_buffer_size;
int feedl; int feedl;
DBG(DBG_info, "%s: startx=%d, endx=%d, linecnt=%d\n", __func__, startx, endx, linecnt); DBG(DBG_info, "%s: startx=%d, endx=%d\n", __func__, startx, endx);
/* for the given resolution, search for master /* for the given resolution, search for master
* motor mode setting */ * motor mode setting */
@ -548,22 +547,16 @@ static void gl646_setup_registers(Genesys_Device* dev,
regs->find_reg(0x23).value = motor->fwdbwd; regs->find_reg(0x23).value = motor->fwdbwd;
regs->find_reg(0x24).value = motor->steps1; regs->find_reg(0x24).value = motor->steps1;
linecnt = linecnt + session.max_color_shift_lines;
/* at QUATER_STEP lines are 'staggered' and need correction */
linecnt += session.num_staggered_lines;
/* CIS scanners read one line per color channel /* CIS scanners read one line per color channel
* since gray mode use 'add' we also read 3 channels even not in * since gray mode use 'add' we also read 3 channels even not in
* color mode */ * color mode */
if (dev->model->is_cis == SANE_TRUE) if (dev->model->is_cis == SANE_TRUE)
{ {
regs->set24(REG_LINCNT, linecnt * 3); regs->set24(REG_LINCNT, session.output_line_count * 3);
linecnt *= session.params.channels;
} }
else else
{ {
regs->set24(REG_LINCNT, linecnt); regs->set24(REG_LINCNT, session.output_line_count);
} }
/* scanner's x coordinates are expressed in physical DPI but they must be divided by cksel */ /* scanner's x coordinates are expressed in physical DPI but they must be divided by cksel */
@ -765,14 +758,16 @@ static void gl646_setup_registers(Genesys_Device* dev,
dev->out_buffer.alloc(8 * session.params.pixels * session.params.channels * bpp); dev->out_buffer.alloc(8 * session.params.pixels * session.params.channels * bpp);
/* scan bytes to read */ /* scan bytes to read */
dev->read_bytes_left = words_per_line * linecnt; unsigned cis_channel_multiplier = dev->model->is_cis ? session.params.channels : 1;
dev->read_bytes_left = words_per_line * session.output_line_count * cis_channel_multiplier;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left); DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
dev->read_active = SANE_TRUE; dev->read_active = SANE_TRUE;
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = linecnt; dev->current_setup.lines = session.output_line_count * cis_channel_multiplier;
dev->current_setup.exposure_time = sensor.exposure_lperiod; dev->current_setup.exposure_time = sensor.exposure_lperiod;
dev->current_setup.xres = session.output_resolution; dev->current_setup.xres = session.output_resolution;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;

Wyświetl plik

@ -1765,7 +1765,6 @@ static void gl841_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
int start; int start;
int bytes_per_line; int bytes_per_line;
int move; int move;
unsigned int lincnt;
int exposure_time; int exposure_time;
int avg; int avg;
@ -1890,10 +1889,6 @@ dummy \ scanned lines
session.params.depth, session.ccd_size_divisor, session.params.depth, session.ccd_size_divisor,
session.params.color_filter); session.params.color_filter);
/*** motor parameters ***/
lincnt = session.params.lines + session.max_color_shift_lines + session.num_staggered_lines;
move = session.params.starty; move = session.params.starty;
DBG(DBG_info, "%s: move=%d steps\n", __func__, move); DBG(DBG_info, "%s: move=%d steps\n", __func__, move);
@ -1910,10 +1905,12 @@ dummy \ scanned lines
DBG(DBG_info, "%s: move=%d steps\n", __func__, move);*/ DBG(DBG_info, "%s: move=%d steps\n", __func__, move);*/
if (session.params.flags & SCAN_FLAG_SINGLE_LINE) { if (session.params.flags & SCAN_FLAG_SINGLE_LINE) {
gl841_init_motor_regs_off(reg, dev->model->is_cis?lincnt* session.params.channels:lincnt); gl841_init_motor_regs_off(reg, dev->model->is_cis ? session.output_line_count * session.params.channels
: session.output_line_count);
} else { } else {
gl841_init_motor_regs_scan(dev, sensor, reg, exposure_time, slope_dpi, scan_step_type, gl841_init_motor_regs_scan(dev, sensor, reg, exposure_time, slope_dpi, scan_step_type,
dev->model->is_cis ? lincnt * session.params.channels : lincnt, dev->model->is_cis ? session.output_line_count * session.params.channels
: session.output_line_count,
dummy, move, dummy, move,
(session.params.flags & SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE) ? (session.params.flags & SCAN_FLAG_DISABLE_BUFFER_FULL_MOVE) ?
MOTOR_FLAG_DISABLE_BUFFER_FULL_MOVE : 0); MOTOR_FLAG_DISABLE_BUFFER_FULL_MOVE : 0);
@ -1949,14 +1946,14 @@ dummy \ scanned lines
dev->out_buffer.clear(); dev->out_buffer.clear();
dev->out_buffer.alloc((8 * dev->settings.pixels * session.params.channels * session.params.depth) / 8); dev->out_buffer.alloc((8 * dev->settings.pixels * session.params.channels * session.params.depth) / 8);
dev->read_bytes_left = bytes_per_line * lincnt; dev->read_bytes_left = bytes_per_line * session.output_line_count;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left); DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
dev->read_active = SANE_TRUE; dev->read_active = SANE_TRUE;
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt; dev->current_setup.lines = session.output_line_count;
dev->current_setup.exposure_time = exposure_time; dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres; dev->current_setup.xres = session.params.xres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;
@ -1995,7 +1992,6 @@ static void gl841_calculate_current_setup(Genesys_Device * dev, const Genesys_Se
{ {
int start; int start;
unsigned int lincnt;
int exposure_time; int exposure_time;
int slope_dpi = 0; int slope_dpi = 0;
@ -2086,11 +2082,9 @@ dummy \ scanned lines
session.optical_pixels); session.optical_pixels);
DBG(DBG_info, "%s : exposure_time=%d pixels\n", __func__, exposure_time); DBG(DBG_info, "%s : exposure_time=%d pixels\n", __func__, exposure_time);
lincnt = session.params.lines + session.max_color_shift_lines + session.num_staggered_lines;
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt; dev->current_setup.lines = session.output_line_count;
dev->current_setup.exposure_time = exposure_time; dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres; dev->current_setup.xres = session.params.xres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;

Wyświetl plik

@ -1193,8 +1193,6 @@ static void gl843_compute_session(Genesys_Device* dev, ScanSession& s,
// compute optical and output resolutions // compute optical and output resolutions
s.hwdpi_divisor = sensor.get_hwdpi_divisor_for_dpi(s.params.xres); s.hwdpi_divisor = sensor.get_hwdpi_divisor_for_dpi(s.params.xres);
s.output_line_count = s.params.lines + s.max_color_shift_lines + s.num_staggered_lines;
s.optical_line_bytes = (s.optical_pixels * s.params.channels * s.params.depth) / 8; s.optical_line_bytes = (s.optical_pixels * s.params.channels * s.params.depth) / 8;
s.output_line_bytes = (s.output_pixels * s.params.channels * s.params.depth) / 8; s.output_line_bytes = (s.output_pixels * s.params.channels * s.params.depth) / 8;
@ -1365,7 +1363,6 @@ gl843_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
{ {
int start; int start;
unsigned int lincnt;
int exposure; int exposure;
DBG(DBG_info, "%s ", __func__); DBG(DBG_info, "%s ", __func__);
@ -1431,12 +1428,10 @@ gl843_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
dev->ld_shift_b = dev->model->ld_shift_b; dev->ld_shift_b = dev->model->ld_shift_b;
} }
lincnt = session.params.lines + session.max_color_shift_lines + session.num_staggered_lines;
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
DBG(DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels); DBG(DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels);
dev->current_setup.lines = lincnt; dev->current_setup.lines = session.output_line_count;
dev->current_setup.exposure_time = exposure; dev->current_setup.exposure_time = exposure;
dev->current_setup.xres = session.params.xres; dev->current_setup.xres = session.params.xres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;

Wyświetl plik

@ -953,7 +953,6 @@ static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
int start; int start;
int bytes_per_line; int bytes_per_line;
int move; int move;
unsigned int lincnt;
unsigned int mflags; /**> motor flags */ unsigned int mflags; /**> motor flags */
int exposure_time; int exposure_time;
@ -1009,8 +1008,6 @@ static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
/*** motor parameters ***/ /*** motor parameters ***/
lincnt = session.params.lines + session.max_color_shift_lines + session.num_staggered_lines;
/* add tl_y to base movement */ /* add tl_y to base movement */
move = session.params.starty; move = session.params.starty;
DBG(DBG_info, "%s: move=%d steps\n", __func__, move); DBG(DBG_info, "%s: move=%d steps\n", __func__, move);
@ -1024,7 +1021,8 @@ static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
} }
gl846_init_motor_regs_scan(dev, sensor, reg, exposure_time, slope_dpi, scan_step_type, gl846_init_motor_regs_scan(dev, sensor, reg, exposure_time, slope_dpi, scan_step_type,
dev->model->is_cis ? lincnt * session.params.channels : lincnt, dev->model->is_cis ? session.output_line_count * session.params.channels
: session.output_line_count,
dummy, move, mflags); dummy, move, mflags);
/*** prepares data reordering ***/ /*** prepares data reordering ***/
@ -1051,14 +1049,14 @@ static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->out_buffer.clear(); dev->out_buffer.clear();
dev->out_buffer.alloc((8 * session.params.pixels * session.params.channels * session.params.depth) / 8); dev->out_buffer.alloc((8 * session.params.pixels * session.params.channels * session.params.depth) / 8);
dev->read_bytes_left = bytes_per_line * lincnt; dev->read_bytes_left = bytes_per_line * session.output_line_count;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left); DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
dev->read_active = SANE_TRUE; dev->read_active = SANE_TRUE;
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt; dev->current_setup.lines = session.output_line_count;
dev->current_setup.exposure_time = exposure_time; dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres; dev->current_setup.xres = session.params.xres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;
@ -1098,7 +1096,6 @@ gl846_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
{ {
int start; int start;
unsigned int lincnt;
int exposure_time; int exposure_time;
int slope_dpi; int slope_dpi;
@ -1149,11 +1146,9 @@ gl846_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
exposure_time = get_sensor_profile(sensor, session.params.xres).exposure_lperiod; exposure_time = get_sensor_profile(sensor, session.params.xres).exposure_lperiod;
DBG(DBG_info, "%s : exposure_time=%d pixels\n", __func__, exposure_time); DBG(DBG_info, "%s : exposure_time=%d pixels\n", __func__, exposure_time);
lincnt = session.params.lines + session.max_color_shift_lines + session.num_staggered_lines;
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt; dev->current_setup.lines = session.output_line_count;
dev->current_setup.exposure_time = exposure_time; dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres; dev->current_setup.xres = session.params.xres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;

Wyświetl plik

@ -972,7 +972,6 @@ static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
int start; int start;
int bytes_per_line; int bytes_per_line;
int move; int move;
unsigned int lincnt;
unsigned int mflags; /**> motor flags */ unsigned int mflags; /**> motor flags */
int exposure_time; int exposure_time;
@ -1026,8 +1025,6 @@ static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
session.optical_pixels, session.params.channels, session.optical_pixels, session.params.channels,
session.params.depth, session.params.color_filter); session.params.depth, session.params.color_filter);
lincnt = session.params.lines + session.max_color_shift_lines + session.num_staggered_lines;
move = session.params.starty; move = session.params.starty;
DBG(DBG_info, "%s: move=%d steps\n", __func__, move); DBG(DBG_info, "%s: move=%d steps\n", __func__, move);
@ -1040,7 +1037,8 @@ static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
} }
gl847_init_motor_regs_scan(dev, sensor, reg, exposure_time, slope_dpi, scan_step_type, gl847_init_motor_regs_scan(dev, sensor, reg, exposure_time, slope_dpi, scan_step_type,
dev->model->is_cis ? lincnt * session.params.channels : lincnt, dev->model->is_cis ? session.output_line_count * session.params.channels
: session.output_line_count,
dummy, move, mflags); dummy, move, mflags);
/*** prepares data reordering ***/ /*** prepares data reordering ***/
@ -1067,14 +1065,14 @@ static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->out_buffer.clear(); dev->out_buffer.clear();
dev->out_buffer.alloc((8 * session.params.pixels * session.params.channels * session.params.depth) / 8); dev->out_buffer.alloc((8 * session.params.pixels * session.params.channels * session.params.depth) / 8);
dev->read_bytes_left = bytes_per_line * lincnt; dev->read_bytes_left = bytes_per_line * session.output_line_count;
DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left); DBG(DBG_info, "%s: physical bytes to read = %lu\n", __func__, (u_long) dev->read_bytes_left);
dev->read_active = SANE_TRUE; dev->read_active = SANE_TRUE;
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt; dev->current_setup.lines = session.output_line_count;
dev->current_setup.exposure_time = exposure_time; dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres; dev->current_setup.xres = session.params.xres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;
@ -1113,7 +1111,6 @@ gl847_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
{ {
int start; int start;
unsigned int lincnt;
int exposure_time; int exposure_time;
int slope_dpi = 0; int slope_dpi = 0;
@ -1165,11 +1162,9 @@ gl847_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
exposure_time = get_sensor_profile(sensor, session.params.xres).exposure_lperiod; exposure_time = get_sensor_profile(sensor, session.params.xres).exposure_lperiod;
DBG(DBG_info, "%s : exposure_time=%d pixels\n", __func__, exposure_time); DBG(DBG_info, "%s : exposure_time=%d pixels\n", __func__, exposure_time);
lincnt = session.params.lines + session.max_color_shift_lines + session.num_staggered_lines;
dev->session = session; dev->session = session;
dev->current_setup.pixels = session.output_pixels; dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt; dev->current_setup.lines = session.output_line_count;
dev->current_setup.exposure_time = exposure_time; dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres; dev->current_setup.xres = session.params.xres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor; dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;

Wyświetl plik

@ -1221,6 +1221,8 @@ void compute_session(Genesys_Device* dev, ScanSession& s, const Genesys_Sensor&
s.max_color_shift_lines = sanei_genesys_compute_max_shift(dev, s.params.channels, s.max_color_shift_lines = sanei_genesys_compute_max_shift(dev, s.params.channels,
s.params.yres, s.params.flags); s.params.yres, s.params.flags);
s.output_line_count = s.params.lines + s.max_color_shift_lines + s.num_staggered_lines;
} }
/** @brief initialize device /** @brief initialize device

Wyświetl plik

@ -246,7 +246,6 @@ struct ScanSession {
unsigned output_line_bytes = 0; unsigned output_line_bytes = 0;
// the number of lines in the output of the scanner. This must be larger than the user // the number of lines in the output of the scanner. This must be larger than the user
// gl843-only
// requested number due to line staggering and color channel shifting. // requested number due to line staggering and color channel shifting.
unsigned output_line_count = 0; unsigned output_line_count = 0;