From 5b746ee1087600e8c867429fb57dd81797958fca Mon Sep 17 00:00:00 2001 From: ThierryFR Date: Sun, 20 Jul 2025 10:38:01 +0000 Subject: [PATCH] Escl revert adf lineart --- backend/escl/escl_capabilities.c | 10 ++++--- backend/escl/escl_newjob.c | 45 ++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/backend/escl/escl_capabilities.c b/backend/escl/escl_capabilities.c index 7958fd8a7..3ee59a9fe 100644 --- a/backend/escl/escl_capabilities.c +++ b/backend/escl/escl_capabilities.c @@ -201,8 +201,10 @@ find_valor_of_array_variables(xmlNode *node, capabilities_t *scanner, int type) { const char *name = (const char *)node->name; if (strcmp(name, "ColorMode") == 0) { -#ifndef HAVE_POPPLER_GLIB const char *color = (SANE_String_Const)xmlNodeGetContent(node); +#if HAVE_POPPLER_GLIB + if (type == PLATEN || strcmp(color, "BlackAndWhite1")) +#else if (strcmp(color, "BlackAndWhite1")) #endif scanner->caps[type].ColorModes = char_to_array(scanner->caps[type].ColorModes, &scanner->caps[type].ColorModesSize, (SANE_String_Const)xmlNodeGetContent(node), 1); @@ -232,15 +234,15 @@ find_valor_of_array_variables(xmlNode *node, capabilities_t *scanner, int type) scanner->caps[type].have_png = i; } #endif -#if(defined HAVE_LIBTIFF) - else if(!strcmp(scanner->caps[type].DocumentFormats[i], "image/tiff")) +#if(defined HAVE_TIFFIO_H) + else if(type == PLATEN && !strcmp(scanner->caps[type].DocumentFormats[i], "image/tiff")) { have_tiff = SANE_TRUE; scanner->caps[type].have_tiff = i; } #endif #if HAVE_POPPLER_GLIB - else if(!strcmp(scanner->caps[type].DocumentFormats[i], "application/pdf")) + else if(type == PLATEN && !strcmp(scanner->caps[type].DocumentFormats[i], "application/pdf")) { have_pdf = SANE_TRUE; scanner->caps[type].have_pdf = i; diff --git a/backend/escl/escl_newjob.c b/backend/escl/escl_newjob.c index ed2f4b0e9..c768d9cf8 100644 --- a/backend/escl/escl_newjob.c +++ b/backend/escl/escl_newjob.c @@ -168,21 +168,38 @@ escl_newjob (capabilities_t *scanner, const ESCL_Device *device, SANE_Status *st int have_tiff = scanner->caps[scanner->source].have_tiff; int have_pdf = scanner->caps[scanner->source].have_pdf; - if (have_pdf != -1) { - scanner->caps[scanner->source].default_format = - strdup(scanner->caps[scanner->source].DocumentFormats[have_pdf]); + if ((scanner->source == PLATEN && have_pdf == -1) || + (scanner->source > PLATEN)) { + if (have_tiff != -1) { + scanner->caps[scanner->source].default_format = + strdup(scanner->caps[scanner->source].DocumentFormats[have_tiff]); + } + else if (have_png != -1) { + scanner->caps[scanner->source].default_format = + strdup(scanner->caps[scanner->source].DocumentFormats[have_png]); + } + else if (have_jpeg != -1) { + scanner->caps[scanner->source].default_format = + strdup(scanner->caps[scanner->source].DocumentFormats[have_jpeg]); + } } - else if (have_tiff != -1) { - scanner->caps[scanner->source].default_format = - strdup(scanner->caps[scanner->source].DocumentFormats[have_tiff]); - } - else if (have_png != -1) { - scanner->caps[scanner->source].default_format = - strdup(scanner->caps[scanner->source].DocumentFormats[have_png]); - } - else if (have_jpeg != -1) { - scanner->caps[scanner->source].default_format = - strdup(scanner->caps[scanner->source].DocumentFormats[have_jpeg]); + else { + if (have_pdf != -1) { + scanner->caps[scanner->source].default_format = + strdup(scanner->caps[scanner->source].DocumentFormats[have_pdf]); + } + else if (have_tiff != -1) { + scanner->caps[scanner->source].default_format = + strdup(scanner->caps[scanner->source].DocumentFormats[have_tiff]); + } + else if (have_png != -1) { + scanner->caps[scanner->source].default_format = + strdup(scanner->caps[scanner->source].DocumentFormats[have_png]); + } + else if (have_jpeg != -1) { + scanner->caps[scanner->source].default_format = + strdup(scanner->caps[scanner->source].DocumentFormats[have_jpeg]); + } } if (atof ((const char *)device->version) <= 2.0) {