From e1ea8bbc149c8b1606996505f104511bcc1ee20d Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Sat, 29 Jul 2023 14:24:06 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E6=97=A5=E5=BF=97=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=EF=BC=8C=E5=8F=96=E6=B6=88=E5=BF=85=E9=A1=BB=E6=89=93?= =?UTF-8?q?=E5=BC=80=E8=AE=BE=E5=A4=87=E7=9A=84=E5=89=8D=E7=BD=AE=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgsane/sane_hg_mdw.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/hgsane/sane_hg_mdw.cpp b/hgsane/sane_hg_mdw.cpp index 272fde2..7a8029e 100644 --- a/hgsane/sane_hg_mdw.cpp +++ b/hgsane/sane_hg_mdw.cpp @@ -1768,6 +1768,22 @@ SANE_Option_Descriptor* hg_sane_middleware::get_option_descriptor(SANE_Handle h, } SANE_Status hg_sane_middleware::set_option(SANE_Handle h, const void* option, SANE_Action action, void* value, SANE_Int* after_do) { + if ((IS_PTR_NUMBER(option) && (int)option == SANE_OPT_ID_DRIVER_LOG) || + (!IS_PTR_NUMBER(option) && strcmp((const char*)option, SANE_STD_OPT_NAME_DRIVER_LOG) == 0)) + { + // omit value of 'h' ... + long id = SANE_OPT_ID_DRIVER_LOG, + l = 0; + std::string name(local_utility::un_json_option_name(id, (int*)&l)); + + if (action == SANE_ACTION_GET_VALUE) + return local_utility::scanner_err_2_sane_statu(hg_scanner_get_parameter(h, SANE_STD_OPT_NAME_DRIVER_LOG, (char*)value, &l)); + else if (action == SANE_ACTION_SET_VALUE) + return local_utility::scanner_err_2_sane_statu(hg_scanner_set_parameter(h, SANE_STD_OPT_NAME_DRIVER_LOG, (char*)value, &l)); + else + return SANE_STATUS_INVAL; + } + LPDEVINST dev = nullptr; scanner_handle handle = find_openning_device(h, false, &dev);