Merge branch 'genesys-session-output-pixels' into 'master'

genesys: Use common code path to compute session output_pixels

See merge request sane-project/backends!153
merge-requests/154/head
Povilas Kanapickas 2019-09-19 22:51:01 +00:00
commit da9307c7a6
8 zmienionych plików z 18 dodań i 23 usunięć

Wyświetl plik

@ -1154,7 +1154,7 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
/*** prepares data reordering ***/
/* words_per_line */
bytes_per_line = (session.optical_pixels * session.params.xres) / session.optical_resolution;
bytes_per_line = session.output_pixels;
bytes_per_line = (bytes_per_line * session.params.channels * session.params.depth) / 8;
/* since we don't have sheetfed scanners to handle,
@ -1184,7 +1184,7 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->read_active = SANE_TRUE;
dev->session = session;
dev->current_setup.pixels = (session.optical_pixels * session.params.xres) / session.optical_resolution;
dev->current_setup.pixels = session.output_pixels;
DBG(DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels);
dev->current_setup.lines = lincnt;
dev->current_setup.exposure_time = exposure_time;
@ -1265,7 +1265,7 @@ gl124_calculate_current_setup (Genesys_Device * dev, const Genesys_Sensor& senso
lincnt = session.params.lines + max_shift + session.num_staggered_lines;
dev->session = session;
dev->current_setup.pixels = (session.optical_pixels * session.params.xres) / sensor.optical_res;
dev->current_setup.pixels = session.output_pixels;
DBG (DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels);
dev->current_setup.lines = lincnt;
dev->current_setup.exposure_time = exposure_time;

Wyświetl plik

@ -592,7 +592,7 @@ static void gl646_setup_registers(Genesys_Device* dev,
/* words_per_line must be computed according to the scan's resolution */
/* in fact, words_per_line _gives_ the actual scan resolution */
words_per_line = (((endx - startx) * session.output_resolution) / sensor.optical_res);
words_per_line = session.output_pixels;
bpp = session.params.depth/8;
if (session.params.depth == 1) {
words_per_line = (words_per_line+7)/8 ;
@ -790,7 +790,7 @@ static void gl646_setup_registers(Genesys_Device* dev,
dev->read_active = SANE_TRUE;
dev->session = session;
dev->current_setup.pixels = ((endx - startx) * session.output_resolution) / sensor.optical_res;
dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = linecnt;
dev->current_setup.exposure_time = sensor.exposure_lperiod;
dev->current_setup.xres = session.output_resolution;

Wyświetl plik

@ -1929,7 +1929,7 @@ dummy \ scanned lines
/*** prepares data reordering ***/
/* words_per_line */
bytes_per_line = (session.optical_pixels * session.params.xres) / session.optical_resolution;
bytes_per_line = session.output_pixels;
bytes_per_line = (bytes_per_line * session.params.channels * session.params.depth) / 8;
requested_buffer_size = 8 * bytes_per_line;
@ -1960,7 +1960,7 @@ dummy \ scanned lines
dev->read_active = SANE_TRUE;
dev->session = session;
dev->current_setup.pixels = (session.optical_pixels * session.params.xres) / session.optical_resolution;
dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres;
@ -2099,7 +2099,7 @@ dummy \ scanned lines
lincnt = session.params.lines + max_shift + session.num_staggered_lines;
dev->session = session;
dev->current_setup.pixels = (session.optical_pixels * session.params.xres) / session.optical_resolution;
dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres;

Wyświetl plik

@ -1193,12 +1193,6 @@ static void gl843_compute_session(Genesys_Device* dev, ScanSession& s,
// compute optical and output resolutions
s.hwdpi_divisor = sensor.get_hwdpi_divisor_for_dpi(s.params.xres);
// after all adjustments on the optical pixels have been made, compute the number of pixels
// to retrieve from the chip
s.output_pixels = (s.optical_pixels * s.output_resolution) / s.optical_resolution;
s.max_color_shift_lines = sanei_genesys_compute_max_shift(dev, s.params.channels,
s.params.yres, s.params.flags);
@ -1450,7 +1444,7 @@ gl843_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
lincnt = session.params.lines + max_shift + session.num_staggered_lines;
dev->session = session;
dev->current_setup.pixels = (session.optical_pixels * session.params.xres) / session.optical_resolution;
dev->current_setup.pixels = session.output_pixels;
DBG(DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels);
dev->current_setup.lines = lincnt;
dev->current_setup.exposure_time = exposure;

Wyświetl plik

@ -1034,7 +1034,7 @@ static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
/*** prepares data reordering ***/
/* words_per_line */
bytes_per_line = (session.optical_pixels * session.params.xres) / session.optical_resolution;
bytes_per_line = session.output_pixels;
bytes_per_line = (bytes_per_line * session.params.channels * session.params.depth) / 8;
requested_buffer_size = 8 * bytes_per_line;
@ -1061,7 +1061,7 @@ static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->read_active = SANE_TRUE;
dev->session = session;
dev->current_setup.pixels = (session.optical_pixels * session.params.xres) / session.optical_resolution;
dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres;
@ -1159,7 +1159,7 @@ gl846_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
lincnt = session.params.lines + max_shift + session.num_staggered_lines;
dev->session = session;
dev->current_setup.pixels = (session.optical_pixels * session.params.xres) / sensor.optical_res;
dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres;

Wyświetl plik

@ -1052,7 +1052,7 @@ static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
/*** prepares data reordering ***/
/* words_per_line */
bytes_per_line = (session.optical_pixels * session.params.xres) / session.optical_resolution;
bytes_per_line = session.output_pixels;
bytes_per_line = (bytes_per_line * session.params.channels * session.params.depth) / 8;
requested_buffer_size = 8 * bytes_per_line;
@ -1079,7 +1079,7 @@ static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->read_active = SANE_TRUE;
dev->session = session;
dev->current_setup.pixels = (session.optical_pixels * session.params.xres) / session.optical_resolution;
dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres;
@ -1177,7 +1177,7 @@ gl847_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
lincnt = session.params.lines + max_shift + session.num_staggered_lines;
dev->session = session;
dev->current_setup.pixels = (session.optical_pixels * session.params.xres) / sensor.optical_res;
dev->current_setup.pixels = session.output_pixels;
dev->current_setup.lines = lincnt;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = session.params.xres;

Wyświetl plik

@ -1180,7 +1180,9 @@ void compute_session(Genesys_Device* dev, ScanSession& s, const Genesys_Sensor&
s.optical_pixels = align_int_up(s.optical_pixels, 2 * s.ccd_size_divisor);
}
// TODO output_pixels
// after all adjustments on the optical pixels have been made, compute the number of pixels
// to retrieve from the chip
s.output_pixels = (s.optical_pixels * s.output_resolution) / s.optical_resolution;
// Note: staggering is not applied for calibration. Staggering starts at 2400 dpi
s.num_staggered_lines = 0;

Wyświetl plik

@ -239,7 +239,6 @@ struct ScanSession {
unsigned output_resolution = 0;
// the number of pixels in output data
// gl843-only
unsigned output_pixels = 0;
// the number of bytes in the output of a single line