From b7ccb16e0ffb8f62d1a4376593fc55bb5fdaa160 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Mon, 29 May 2023 17:58:12 +0800 Subject: [PATCH] =?UTF-8?q?EndXfer=E4=B8=AD=E6=81=A2=E5=A4=8D=E6=AD=A3?= =?UTF-8?q?=E5=B8=B8=E7=BB=93=E6=9D=9F=EF=BC=9B=E8=AE=BE=E7=BD=AE=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E6=98=AF=E5=90=A6=E6=98=BE=E7=A4=BA=E7=94=B1APP?= =?UTF-8?q?=E5=86=B3=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- twain/twain/huagaods.cpp | 9 ++++++++- twain/twain/huagaods.hpp | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/twain/twain/huagaods.cpp b/twain/twain/huagaods.cpp index f72c17f..ab4babe 100644 --- a/twain/twain/huagaods.cpp +++ b/twain/twain/huagaods.cpp @@ -1042,7 +1042,14 @@ Result huagao_ds::pendingXfersGet(const Identity&, PendingXfers& data) // 显示设置界面时,不能阻塞在EndXfer,否则最后一张图片传输后显示不出来,故在此做阻塞调用 // int cnt = get_scanned_image_count(-1); - int cnt = show_setting_ ? 1 : get_scanned_image_count(-1); + // FIX-2023-05-29: 是否保持设置界面显示,由APP决定,此处不再由是否显示UI来决定,保持一个扫描流程正常结束 + int cnt = /*show_setting_ ? 1 :*/ get_scanned_image_count(10); + while (cnt == 0) + { + if (scanner_status_ == SCANNER_STATUS_STOPPED) + break; + cnt = get_scanned_image_count(10); + } data.setCount(cnt); return success(); diff --git a/twain/twain/huagaods.hpp b/twain/twain/huagaods.hpp index cf83b6b..c92a3e1 100644 --- a/twain/twain/huagaods.hpp +++ b/twain/twain/huagaods.hpp @@ -50,7 +50,7 @@ class huagao_ds : public Twpp::SourceFromThis { Twpp::Compression m_compression = Twpp::Compression::None; SANE_Parameters* cur_head_; int dpi_; - int scanner_status_; + volatile int scanner_status_; bool xfer_ready_failed_; bool log_all_triple_; bool app_trigger_event_;