kopia lustrzana https://gitlab.com/sane-project/backends
epson2: updated resolution list detection
rodzic
c5ca46c2d1
commit
ccf58bf516
|
@ -228,17 +228,27 @@ e2_dev_post_init(struct Epson_Device *dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* the device is more capable, integrating resolution list */
|
/* try to expand the resolution list where appropriate */
|
||||||
if (dev->dpi_range.max > dev->res_list[dev->res_list_size - 1]) {
|
|
||||||
|
|
||||||
int val = dev->res_list[dev->res_list_size - 1] * 2;
|
int last = dev->res_list[dev->res_list_size - 1];
|
||||||
|
|
||||||
|
DBG(1, "highest available resolution: %d\n", last);
|
||||||
|
|
||||||
|
if (dev->optical_res > last) {
|
||||||
|
DBG(1, "adding optical resolution (%d)\n", dev->optical_res);
|
||||||
|
e2_add_resolution(dev, dev->optical_res);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dev->dpi_range.max > last && dev->dpi_range.max != dev->optical_res) {
|
||||||
|
|
||||||
|
int val = last + last;
|
||||||
|
|
||||||
DBG(1, "integrating resolution list (%d-%d)\n",
|
DBG(1, "integrating resolution list (%d-%d)\n",
|
||||||
val, dev->dpi_range.max);
|
val, dev->dpi_range.max);
|
||||||
|
|
||||||
while (val <= dev->dpi_range.max) {
|
while (val <= dev->dpi_range.max) {
|
||||||
e2_add_resolution(dev, val);
|
e2_add_resolution(dev, val);
|
||||||
val *= 2;
|
val += last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,14 +261,16 @@ e2_dev_post_init(struct Epson_Device *dev)
|
||||||
dev->resolution_list =
|
dev->resolution_list =
|
||||||
malloc((dev->res_list_size + 1) * sizeof(SANE_Word));
|
malloc((dev->res_list_size + 1) * sizeof(SANE_Word));
|
||||||
|
|
||||||
if (dev->resolution_list == NULL) {
|
if (dev->resolution_list == NULL)
|
||||||
return SANE_STATUS_NO_MEM;
|
return SANE_STATUS_NO_MEM;
|
||||||
}
|
|
||||||
|
|
||||||
*(dev->resolution_list) = dev->res_list_size;
|
*(dev->resolution_list) = dev->res_list_size;
|
||||||
|
|
||||||
memcpy(&(dev->resolution_list[1]), dev->res_list,
|
memcpy(&(dev->resolution_list[1]), dev->res_list,
|
||||||
dev->res_list_size * sizeof(SANE_Word));
|
dev->res_list_size * sizeof(SANE_Word));
|
||||||
|
|
||||||
|
|
||||||
/* establish defaults */
|
/* establish defaults */
|
||||||
dev->need_reset_on_source_change = SANE_FALSE;
|
dev->need_reset_on_source_change = SANE_FALSE;
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue