merge-requests/402/merge
Thierry HUCHARD 2020-04-04 16:29:41 +02:00
rodzic fa75c94b24
commit 4ed0b0fd59
2 zmienionych plików z 26 dodań i 22 usunięć

Wyświetl plik

@ -688,11 +688,6 @@ sane_open(SANE_String_Const name, SANE_Handle *h)
return status;
}
status = escl_status(device);
if (status != SANE_STATUS_GOOD) {
escl_free_device(device);
return (status);
}
handler = (escl_sane_t *)calloc(1, sizeof(escl_sane_t));
if (handler == NULL) {
escl_free_device(device);
@ -704,7 +699,7 @@ sane_open(SANE_String_Const name, SANE_Handle *h)
escl_free_handler(handler);
return (status);
}
status = init_options(device, handler);
status = init_options(NULL, handler);
if (status != SANE_STATUS_GOOD) {
escl_free_handler(handler);
return (status);
@ -952,7 +947,7 @@ sane_start(SANE_Handle h)
DBG (10, "Default Color allocation failure.\n");
return (SANE_STATUS_NO_MEM);
}
handler->result = escl_newjob(handler->scanner, handler->name, &status);
handler->result = escl_newjob(handler->scanner, handler->device, &status);
if (status != SANE_STATUS_GOOD)
return (status);
}
@ -1076,7 +1071,7 @@ sane_read(SANE_Handle h, SANE_Byte *buf, SANE_Int maxlen, SANE_Int *len)
free(handler->scanner->img_data);
handler->scanner->img_data = NULL;
if (handler->scanner->source != PLATEN) {
SANE_Status st = escl_status(handler->name, handler->scanner->source);
SANE_Status st = escl_status(handler->device, handler->scanner->source);
DBG(10, "eSCL : command returned status %s\n", sane_strstatus(st));
SANE_Bool next_page =
(SANE_STATUS_GOOD == st ?

Wyświetl plik

@ -185,41 +185,50 @@ find_valor_of_array_variables(xmlNode *node, capabilities_t *scanner, int type)
if (strcmp(name, "ColorMode") == 0) {
const char *color = (SANE_String_Const)xmlNodeGetContent(node);
if (type == PLATEN || strcmp(color, "BlackAndWhite1"))
scanner->caps[type].ColorModes = char_to_array(scanner->caps[type].ColorModes, &scanner->caps[type].ColorModesSize, (SANE_String_Const)xmlNodeGetContent(node), 1);
scanner->caps[type].ColorModes = char_to_array(
scanner->caps[type].ColorModes,
&scanner->caps[type].ColorModesSize,
(SANE_String_Const)xmlNodeGetContent(node), 1);
}
else if (strcmp(name, "ContentType") == 0)
scanner->caps[type].ContentTypes = char_to_array(scanner->caps[type].ContentTypes, &scanner->caps[type].ContentTypesSize, (SANE_String_Const)xmlNodeGetContent(node), 0);
scanner->caps[type].ContentTypes = char_to_array(
scanner->caps[type].ContentTypes,
&scanner->caps[type].ContentTypesSize,
(SANE_String_Const)xmlNodeGetContent(node), 0);
else if (strcmp(name, "DocumentFormat") == 0)
{
int i = 0;
int _is_jpeg = 0, _is_png = 0, _is_tiff = 0, _is_pdf = 0;
scanner->DocumentFormats = char_to_array(scanner->DocumentFormats, &scanner->DocumentFormatsSize, (SANE_String_Const)xmlNodeGetContent(node), 0);
for(; i < scanner->DocumentFormatsSize; i++)
scanner->caps[type].DocumentFormats = char_to_array(
scanner->caps[type].DocumentFormats,
&scanner->caps[type].DocumentFormatsSize,
(SANE_String_Const)xmlNodeGetContent(node), 0);
for(; i < scanner->caps[type].DocumentFormatsSize; i++)
{
if (!strcmp(scanner->DocumentFormats[i], "image/jpeg"))
if (!strcmp(scanner->caps[type].DocumentFormats[i], "image/jpeg"))
_is_jpeg = 1;
#if(defined HAVE_LIBPNG)
else if(!strcmp(scanner->DocumentFormats[i], "image/png"))
else if(!strcmp(scanner->caps[type].DocumentFormats[i], "image/png"))
_is_png = 1;
#endif
#if(defined HAVE_TIFFIO_H)
else if(!strcmp(scanner->DocumentFormats[i], "image/tiff"))
else if(!strcmp(scanner->caps[type].DocumentFormats[i], "image/tiff"))
_is_tiff = 1;
#endif
#if(defined HAVE_POPPLER_GLIB)
else if(!strcmp(scanner->DocumentFormats[i], "application/pdf"))
else if(!strcmp(scanner->caps[type].DocumentFormats[i], "application/pdf"))
_is_pdf = 1;
#endif
}
if (_is_pdf)
scanner->default_format = strdup("application/pdf");
scanner->caps[type].default_format = strdup("application/pdf");
else if (_is_tiff)
scanner->default_format = strdup("image/tiff");
scanner->caps[type].default_format = strdup("image/tiff");
else if (_is_png)
scanner->default_format = strdup("image/png");
scanner->caps[type].default_format = strdup("image/png");
else if(_is_jpeg)
scanner->default_format = strdup("image/jpeg");
fprintf(stderr, "Capability : [%s]\n", scanner->default_format);
scanner->caps[type].default_format = strdup("image/jpeg");
fprintf(stderr, "Capability : [%s]\n", scanner->caps[type].default_format);
}
else if (strcmp(name, "DocumentFormatExt") == 0)
scanner->caps[type].format_ext = 1;
@ -427,7 +436,7 @@ escl_capabilities(const ESCL_Device *device, SANE_Status *status)
scanner->source = 0;
print_xml_c(node, scanner, -1);
_reduce_color_modes(scanner);
xmlFreeDoc(data);
xmlCleanupParser();
xmlMemoryDump();