genesys: Remove duplicate fields out of settings struct

merge-requests/116/head
Povilas Kanapickas 2019-07-27 05:12:29 +03:00
rodzic 808cc5737d
commit e34814aef8
10 zmienionych plików z 41 dodań i 98 usunięć

Wyświetl plik

@ -3503,9 +3503,8 @@ static void genesys_fill_line_interp_buffer(Genesys_Device* dev, uint8_t* work_b
while (count < size)
{
/* line counter */
/* dev->line_interp holds the number of lines scanned for one line of data sent */
if(((dev->line_count/dev->current_setup.channels) % dev->line_interp)==0)
{
// dev->line_interp holds the number of lines scanned for one line of data sent
if (((dev->line_count / dev->current_setup.params.channels) % dev->line_interp) == 0) {
/* copy pixel when line matches */
work_buffer_dst[count] = dev->oe_buffer.get_read_pos()[dev->cur];
count++;
@ -3726,9 +3725,8 @@ static void genesys_read_ordered_data(Genesys_Device* dev, SANE_Byte* destinatio
debug_dump(DBG_info, dev->current_setup);
/* prepare conversion */
/* current settings */
channels = dev->current_setup.channels;
depth = dev->current_setup.depth;
channels = dev->current_setup.params.channels;
depth = dev->current_setup.params.depth;
src_pixels = dev->current_setup.pixels;
@ -4153,7 +4151,7 @@ static void calc_parameters(Genesys_Scanner* s)
if (s->dev->settings.xres >= 1200
&& ( s->dev->model->asic_type == GENESYS_GL124
|| s->dev->model->asic_type == GENESYS_GL847
|| s->dev->current_setup.xres < s->dev->current_setup.yres
|| s->dev->current_setup.xres < s->dev->current_setup.params.yres
)
)
{

Wyświetl plik

@ -1318,11 +1318,8 @@ static void gl124_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->current_setup.pixels = (used_pixels * used_res) / optical_res;
DBG(DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels);
dev->current_setup.lines = lincnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = used_res;
dev->current_setup.yres = params.yres;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -1440,11 +1437,8 @@ gl124_calculate_current_setup (Genesys_Device * dev, const Genesys_Sensor& senso
dev->current_setup.pixels = (used_pixels * used_res) / optical_res;
DBG (DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels);
dev->current_setup.lines = lincnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = used_res;
dev->current_setup.yres = params.yres;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -2180,7 +2174,7 @@ static void gl124_send_shading_data(Genesys_Device* dev, const Genesys_Sensor& s
{
dev->binary=fopen("binary.pnm","wb");
lines = dev->reg.get24(REG_LINCNT);
channels=dev->current_setup.channels;
channels = dev->current_setup.params.channels;
if(dev->binary!=NULL)
{
fprintf(dev->binary,"P5\n%d %d\n%d\n",(endpixel-strpixel)/factor*channels*dev->segnb,lines/channels,255);

Wyświetl plik

@ -947,11 +947,8 @@ static void gl646_setup_registers(Genesys_Device* dev,
dev->current_setup.pixels =
((endx - startx) * sensor_mst->xdpi) / sensor.optical_res;
dev->current_setup.lines = linecnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = sensor_mst->exposure;
dev->current_setup.xres = sensor_mst->xdpi;
dev->current_setup.yres = motor->ydpi;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -1734,17 +1731,13 @@ static void gl646_detect_document_end(Genesys_Device* dev)
sanei_genesys_read_valid_words(dev, &bytes_left);
/* we add the number of lines needed to read the last part of the document in */
lines =
(SANE_UNFIX (dev->model->y_offset) * dev->current_setup.yres) /
MM_PER_INCH;
lines = (SANE_UNFIX(dev->model->y_offset) * dev->current_setup.params.yres) / MM_PER_INCH;
DBG(DBG_io, "%s: adding %d line to flush\n", __func__, lines);
bytes_left += lines * dev->wpl;
if (dev->current_setup.depth > 8)
{
if (dev->current_setup.params.depth > 8) {
bytes_left = 2 * bytes_left;
}
if (dev->current_setup.channels > 1)
{
if (dev->current_setup.params.channels > 1) {
bytes_left = 3 * bytes_left;
}
if (bytes_left < dev->read_bytes_left)
@ -2256,7 +2249,7 @@ static void gl646_init_regs_for_shading(Genesys_Device* dev, const Genesys_Senso
/* used when sending shading calibration data */
dev->calib_pixels = settings.pixels;
dev->calib_channels = dev->current_setup.channels;
dev->calib_channels = dev->current_setup.params.channels;
if (dev->model->is_cis == SANE_FALSE)
{
dev->calib_channels = 3;
@ -3857,31 +3850,26 @@ gl646_is_compatible_calibration (Genesys_Device * dev, const Genesys_Sensor& sen
*/
if (dev->settings.scan_mode == ScanColorMode::COLOR_SINGLE_PASS)
{
dev->current_setup.channels = 3;
}
else
{
dev->current_setup.channels = 1;
dev->current_setup.params.channels = 3;
} else {
dev->current_setup.params.channels = 1;
}
dev->current_setup.xres = dev->settings.xres;
DBG(DBG_io, "%s: requested=(%d,%f), tested=(%d,%f)\n", __func__, dev->current_setup.channels,
dev->current_setup.xres, cache->used_setup.channels, cache->used_setup.xres);
DBG(DBG_io, "%s: requested=(%d,%f), tested=(%d,%f)\n", __func__,
dev->current_setup.params.channels, dev->current_setup.xres,
cache->used_setup.params.channels, cache->used_setup.xres);
/* a calibration cache is compatible if color mode and x dpi match the user
* requested scan. In the case of CIS scanners, dpi isn't a criteria */
if (dev->model->is_cis == SANE_FALSE)
{
compatible =
((dev->current_setup.channels == cache->used_setup.channels)
&& (((int) dev->current_setup.xres) ==
((int) cache->used_setup.xres)));
}
else
{
compatible =
(dev->current_setup.channels == cache->used_setup.channels);
compatible = (dev->current_setup.params.channels == cache->used_setup.params.channels) &&
(((int) dev->current_setup.xres) == ((int) cache->used_setup.xres));
} else {
compatible = dev->current_setup.params.channels == cache->used_setup.params.channels;
}
if (dev->current_setup.params.scan_method != cache->used_setup.params.scan_method)
{
DBG(DBG_io, "%s: current method=%d, used=%d\n", __func__,

Wyświetl plik

@ -269,7 +269,10 @@ typedef struct
unsigned channels;
/* settings */
SANE_Int ydpi; /* real motor dpi, may be different from the resolution */
// real motor dpi, may be different from the resolution. For the currently known motors it's the
// same
SANE_Int ydpi;
SANE_Int steptype; /* 0=full, 1=half, 2=quarter */
SANE_Bool fastmod; /* fast scanning 0/1 */
SANE_Bool fastfed; /* fast fed slope tables */

Wyświetl plik

@ -2041,11 +2041,8 @@ dummy \ scanned lines
dev->current_setup.params = params;
dev->current_setup.pixels = (used_pixels * used_res)/optical_res;
dev->current_setup.lines = lincnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = used_res;
dev->current_setup.yres = params.yres;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -2254,11 +2251,8 @@ dummy \ scanned lines
dev->current_setup.params = params;
dev->current_setup.pixels = (used_pixels * used_res)/optical_res;
dev->current_setup.lines = lincnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = used_res;
dev->current_setup.yres = params.yres;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -4580,7 +4574,7 @@ static void gl841_send_shading_data(Genesys_Device* dev, const Genesys_Sensor& s
{
dev->binary=fopen("binary.pnm","wb");
lines = dev->reg.get24(REG_LINCNT);
channels=dev->current_setup.channels;
channels = dev->current_setup.params.channels;
if(dev->binary!=NULL)
{
fprintf(dev->binary,"P5\n%d %d\n%d\n",(endpixel-strpixel)/factor*channels,lines/channels,255);

Wyświetl plik

@ -1453,11 +1453,8 @@ static void gl843_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
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 = session.output_line_count;
dev->current_setup.depth = session.params.depth;
dev->current_setup.channels = session.params.channels;
dev->current_setup.exposure_time = exposure;
dev->current_setup.xres = session.output_resolution;
dev->current_setup.yres = session.params.yres;
dev->current_setup.ccd_size_divisor = session.ccd_size_divisor;
dev->current_setup.stagger = session.num_staggered_lines;
dev->current_setup.max_shift = session.max_color_shift_lines + session.num_staggered_lines;
@ -1600,11 +1597,8 @@ gl843_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
dev->current_setup.pixels = (used_pixels * used_res) / optical_res;
DBG(DBG_info, "%s: current_setup.pixels=%d\n", __func__, dev->current_setup.pixels);
dev->current_setup.lines = lincnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = exposure;
dev->current_setup.xres = used_res;
dev->current_setup.yres = params.yres;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -1740,7 +1734,7 @@ static void gl843_detect_document_end(Genesys_Device* dev)
DBG_HELPER(dbg);
SANE_Bool paper_loaded;
unsigned int scancnt = 0;
int flines, channels, depth, bytes_remain, sublines,
int flines, bytes_remain, sublines,
bytes_to_flush, lines, sub_bytes, tmp, read_bytes_left;
gl843_get_paper_sensor(dev, &paper_loaded);
@ -1751,8 +1745,8 @@ static void gl843_detect_document_end(Genesys_Device* dev)
DBG(DBG_info, "%s: no more document\n", __func__);
dev->document = SANE_FALSE;
channels = dev->current_setup.channels;
depth = dev->current_setup.depth;
unsigned channels = dev->current_setup.params.channels;
unsigned depth = dev->current_setup.params.depth;
read_bytes_left = (int) dev->read_bytes_left;
DBG(DBG_io, "%s: read_bytes_left=%d\n", __func__, read_bytes_left);
@ -1775,12 +1769,11 @@ static void gl843_detect_document_end(Genesys_Device* dev)
DBG(DBG_io, "%s: %d scanned but not read lines\n", __func__, flines);
/* adjust number of bytes to read
* we need to read the final bytes which are word per line * number of last lines
* to have doc leaving feeder */
lines =
(SANE_UNFIX (dev->model->post_scan) * dev->current_setup.yres) /
MM_PER_INCH + flines;
// Adjust number of bytes to read. We need to read the final bytes which are word per
// line times number of last lines to have doc leaving feeder
lines = (SANE_UNFIX(dev->model->post_scan) * dev->current_setup.params.yres) / MM_PER_INCH +
flines;
DBG(DBG_io, "%s: adding %d line to flush\n", __func__, lines);
/* number of bytes to read from scanner to get document out of it after

Wyświetl plik

@ -1171,11 +1171,8 @@ static void gl846_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->current_setup.params = params;
dev->current_setup.pixels = (used_pixels * used_res) / optical_res;
dev->current_setup.lines = lincnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = used_res;
dev->current_setup.yres = params.yres;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -1310,11 +1307,8 @@ gl846_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
dev->current_setup.params = params;
dev->current_setup.pixels = (used_pixels * used_res) / optical_res;
dev->current_setup.lines = lincnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = used_res;
dev->current_setup.yres = params.yres;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -1914,7 +1908,7 @@ static void gl846_send_shading_data(Genesys_Device* dev, const Genesys_Sensor& s
DBG_HELPER_ARGS(dbg, "writing %d bytes of shading data", size);
uint32_t addr, length, i, x, factor, pixels;
uint32_t dpiset, dpihw, strpixel, endpixel;
uint32_t lines, channels;
uint32_t lines;
uint8_t val,*ptr,*src;
/* shading data is plit in 3 (up to 5 with IR) areas
@ -1939,7 +1933,7 @@ static void gl846_send_shading_data(Genesys_Device* dev, const Genesys_Sensor& s
{
dev->binary=fopen("binary.pnm","wb");
lines = dev->reg.get24(REG_LINCNT);
channels=dev->current_setup.channels;
unsigned channels = dev->current_setup.params.channels;
if(dev->binary!=NULL)
{
fprintf(dev->binary,"P5\n%d %d\n%d\n",(endpixel-strpixel)/factor*channels,lines/channels,255);

Wyświetl plik

@ -1188,11 +1188,8 @@ static void gl847_init_scan_regs(Genesys_Device* dev, const Genesys_Sensor& sens
dev->current_setup.params = params;
dev->current_setup.pixels = (used_pixels * used_res) / optical_res;
dev->current_setup.lines = lincnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = used_res;
dev->current_setup.yres = params.yres;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -1328,11 +1325,8 @@ gl847_calculate_current_setup(Genesys_Device * dev, const Genesys_Sensor& sensor
dev->current_setup.params = params;
dev->current_setup.pixels = (used_pixels * used_res) / optical_res;
dev->current_setup.lines = lincnt;
dev->current_setup.depth = params.depth;
dev->current_setup.channels = params.channels;
dev->current_setup.exposure_time = exposure_time;
dev->current_setup.xres = used_res;
dev->current_setup.yres = params.yres;
dev->current_setup.ccd_size_divisor = ccd_size_divisor;
dev->current_setup.stagger = stagger;
dev->current_setup.max_shift = max_shift + stagger;
@ -1969,7 +1963,7 @@ static void gl847_send_shading_data(Genesys_Device* dev, const Genesys_Sensor& s
DBG_HELPER_ARGS(dbg, "writing %d bytes of shading data", size);
uint32_t addr, length, i, x, factor, pixels;
uint32_t dpiset, dpihw, strpixel, endpixel;
uint32_t lines, channels;
uint32_t lines;
uint8_t val,*ptr,*src;
/* shading data is plit in 3 (up to 5 with IR) areas
@ -1994,7 +1988,7 @@ static void gl847_send_shading_data(Genesys_Device* dev, const Genesys_Sensor& s
{
dev->binary=fopen("binary.pnm","wb");
lines = dev->reg.get24(REG_LINCNT);
channels=dev->current_setup.channels;
unsigned channels = dev->current_setup.params.channels;
if(dev->binary!=NULL)
{
fprintf(dev->binary,"P5\n%d %d\n%d\n",(endpixel-strpixel)/factor*channels,lines/channels,255);

Wyświetl plik

@ -1711,22 +1711,19 @@ void debug_dump(unsigned level, const Genesys_Current_Setup& setup)
DBG(level, "current_setup:\n"
"Pixels: %d\n"
"Lines: %d\n"
"Depth: %d\n"
"Channels: %d\n"
"exposure_time: %d\n"
"Resolution X/Y: %g %g\n"
"Resolution X/Y: %g\n"
"ccd_size_divisor: %d\n"
"stagger: %d\n"
"max_shift: %d\n",
setup.pixels,
setup.lines,
setup.depth,
setup.channels,
setup.exposure_time,
setup.xres, setup.yres,
setup.xres,
setup.ccd_size_divisor,
setup.stagger,
setup.max_shift);
debug_dump(level, setup.params);
}
void debug_dump(unsigned level, const Genesys_Register_Set& regs)

Wyświetl plik

@ -230,17 +230,11 @@ struct Genesys_Current_Setup
int pixels = 0;
// line count expected from scanner
int lines = 0;
// depth expected from scanner
int depth = 0;
// channel count expected from scanner
int channels = 0;
// used exposure time
int exposure_time = 0;
// used xres
float xres = 0;
// used yres
float yres = 0;
// half ccd mode
unsigned ccd_size_divisor = 1;
SANE_Int stagger = 0;
@ -252,11 +246,8 @@ struct Genesys_Current_Setup
return params == other.params &&
pixels == other.pixels &&
lines == other.lines &&
depth == other.depth &&
channels == other.channels &&
exposure_time == other.exposure_time &&
xres == other.xres &&
yres == other.yres &&
ccd_size_divisor == other.ccd_size_divisor &&
stagger == other.stagger &&
max_shift == other.max_shift;
@ -270,11 +261,8 @@ void serialize(Stream& str, Genesys_Current_Setup& x)
serialize_newline(str);
serialize(str, x.pixels);
serialize(str, x.lines);
serialize(str, x.depth);
serialize(str, x.channels);
serialize(str, x.exposure_time);
serialize(str, x.xres);
serialize(str, x.yres);
serialize(str, x.ccd_size_divisor);
serialize(str, x.stagger);
serialize(str, x.max_shift);