From b6065a4a3d5121ea4d305098cfcfc1864709e8e0 Mon Sep 17 00:00:00 2001 From: 13038267101 Date: Fri, 18 Nov 2022 16:05:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=88=A4=E6=96=AD=E6=97=A0?= =?UTF-8?q?=E7=BA=B8=E7=8A=B6=E6=80=81=E5=87=BA=E7=8E=B0=E5=A5=94=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgdriver/hgdev/hg_scanner_239.cpp | 3 ++- hgdriver/hgdev/hg_scanner_239.h | 2 +- hgdriver/hgdev/image_process.cpp | 1 - hgdriver/hgdev/scanner_manager.cpp | 34 +++++++++++++++--------------- hgsane/sane_hg_mdw.cpp | 19 ++++++++++++----- 5 files changed, 34 insertions(+), 25 deletions(-) diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index de4916e..6b60bef 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -1271,7 +1271,8 @@ void hg_scanner_239::thread_handle_usb_read(void) } if (status_ == SCANNER_ERR_DEVICE_STOPPED) { - status_ = ret = get_scanner_paperon(); + SANE_Bool b = false; + status_ = ret = get_scanner_paperon(&b); } VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "USB thread exit with code: %s, status = %s\n", hg_scanner_err_name(ret), hg_scanner_err_name(status_)); } diff --git a/hgdriver/hgdev/hg_scanner_239.h b/hgdriver/hgdev/hg_scanner_239.h index 8627348..11d55b0 100644 --- a/hgdriver/hgdev/hg_scanner_239.h +++ b/hgdriver/hgdev/hg_scanner_239.h @@ -95,7 +95,7 @@ public: virtual int set_sleep_time(int setsleepime); //设置功耗模式(休眠) virtual int get_dogear_distance(void); //获取折角检测最小距离阈值 virtual int set_dogear_distance(void); //设置折角检测最小距离阈值 - virtual int get_scanner_paperon(SANE_Bool* paperon = NULL);//获取设备有无纸张 + virtual int get_scanner_paperon(SANE_Bool* paperon);//获取设备有无纸张 virtual int set_scan_when_paper_on(void); //获取是否为检测到进纸盘上有纸即开始扫描 virtual int get_scan_when_paper_on(void); //设置是否为检测到进纸盘上有纸即开始扫描 virtual int get_scan_with_hole(void); //获取是否为带孔扫描 diff --git a/hgdriver/hgdev/image_process.cpp b/hgdriver/hgdev/image_process.cpp index 158a19e..9eb9ac4 100644 --- a/hgdriver/hgdev/image_process.cpp +++ b/hgdriver/hgdev/image_process.cpp @@ -112,7 +112,6 @@ using namespace std; #define __stdcall #endif -static int num=0; #define SAFE_DELETE(p){ \ if (NULL != (p)) {delete []p; \ (p) = NULL; \ diff --git a/hgdriver/hgdev/scanner_manager.cpp b/hgdriver/hgdev/scanner_manager.cpp index 2db2893..0db7658 100644 --- a/hgdriver/hgdev/scanner_manager.cpp +++ b/hgdriver/hgdev/scanner_manager.cpp @@ -35,18 +35,18 @@ static struct } g_supporting_devices[] = { #ifdef OEM_LISICHENG - {0x31c9, PID_AND_NAME(8200, SCANNER_NAME_LSC_G42S), "G42S", "",&hg_scanner_mgr::create_scanner_g300} - , {0x31c9, PID_AND_NAME(8420, SCANNER_NAME_LSC_G42S), "G42S", "",&hg_scanner_mgr::create_scanner_g300} - , {0x31c9, PID_AND_NAME(8429, SCANNER_NAME_LSC_G42S), "G42S", "",&hg_scanner_mgr::create_scanner_empty} - , {0x31c9, PID_AND_NAME(8520, SCANNER_NAME_LSC_G52S), "G52S", "",&hg_scanner_mgr::create_scanner_g400} - , {0x31c9, PID_AND_NAME(8529, SCANNER_NAME_LSC_G52S), "G52S", "",&hg_scanner_mgr::create_scanner_g239} - , {0x31c9, PID_AND_NAME(8620, SCANNER_NAME_LSC_G62S), "G62S", "",&hg_scanner_mgr::create_scanner_g100} - , {0x31c9, PID_AND_NAME(8629, SCANNER_NAME_LSC_G62S), "G62S", "",&hg_scanner_mgr::create_scanner_g239} - , {0x31c9, PID_AND_NAME(8730, SCANNER_NAME_LSC_G73S), "G73S", "",&hg_scanner_mgr::create_scanner_g100} + {0x31c9, PID_AND_NAME(8200, SCANNER_NAME_LSC_G42S), "G42S", "", &hg_scanner_mgr::create_scanner_g300} + , {0x31c9, PID_AND_NAME(8420, SCANNER_NAME_LSC_G42S), "G42S", "", &hg_scanner_mgr::create_scanner_g300} + , {0x31c9, PID_AND_NAME(8429, SCANNER_NAME_LSC_G42S), "G42S", "", &hg_scanner_mgr::create_scanner_empty} + , {0x31c9, PID_AND_NAME(8520, SCANNER_NAME_LSC_G52S), "G52S", "", &hg_scanner_mgr::create_scanner_g400} + , {0x31c9, PID_AND_NAME(8529, SCANNER_NAME_LSC_G52S), "G52S", "", &hg_scanner_mgr::create_scanner_g239} + , {0x31c9, PID_AND_NAME(8620, SCANNER_NAME_LSC_G62S), "G62S", "", &hg_scanner_mgr::create_scanner_g100} + , {0x31c9, PID_AND_NAME(8629, SCANNER_NAME_LSC_G62S), "G62S", "", &hg_scanner_mgr::create_scanner_g239} + , {0x31c9, PID_AND_NAME(8730, SCANNER_NAME_LSC_G73S), "G73S", "", &hg_scanner_mgr::create_scanner_g100} , {0x31c9, PID_AND_NAME(8739, SCANNER_NAME_LSC_G73S), "G73S", "", &hg_scanner_mgr::create_scanner_g239} #elif defined(OEM_HANWANG) - {0x2903, 0x1000, SCANNER_NAME_HW_1000, SCANNER_NAME_HW_1000, "",& hg_scanner_mgr::create_scanner_g300} // "HW-1060A" + {0x2903, 0x1000, SCANNER_NAME_HW_1000, SCANNER_NAME_HW_1000, "", &hg_scanner_mgr::create_scanner_g300} // "HW-1060A" , {0x2903, 0x1002, SCANNER_NAME_HW_1002, SCANNER_NAME_HW_1002, "", &hg_scanner_mgr::create_scanner_g302} // "HW-1060A" , {0x2903, 0x7000, SCANNER_NAME_HW_7000, SCANNER_NAME_HW_7000, "", &hg_scanner_mgr::create_scanner_g400} // "HW-74x0WA" , {0x2903, 0x7002, SCANNER_NAME_HW_7002, SCANNER_NAME_HW_7002, "", &hg_scanner_mgr::create_scanner_g402} // "HW-7002" @@ -54,22 +54,22 @@ g_supporting_devices[] = { , {0x2903, 0x8000, SCANNER_NAME_HW_8000, SCANNER_NAME_HW_8000, "", &hg_scanner_mgr::create_scanner_g239} // "HW-8090F" , {0x2903, 0x9000, SCANNER_NAME_HW_9000, SCANNER_NAME_HW_9000, "", &hg_scanner_mgr::create_scanner_g239} // "HW-9110E" #elif defined(OEM_CANGTIAN) - {0x3072, 0x0303, SCANNER_NAME_CT_303, SCANNER_NAME_CT_303, "",& hg_scanner_mgr::create_scanner_g300} + {0x3072, 0x0303, SCANNER_NAME_CT_303, SCANNER_NAME_CT_303, "", &hg_scanner_mgr::create_scanner_g300} , {0x3072, 0x0404, SCANNER_NAME_CT_404, SCANNER_NAME_CT_404, "", &hg_scanner_mgr::create_scanner_g239} , {0x3072, 0x0238, SCANNER_NAME_CT_138, SCANNER_NAME_CT_138, "", &hg_scanner_mgr::create_scanner_g239} , {0x3072, 0x0138, SCANNER_NAME_CT_238, SCANNER_NAME_CT_238, "", &hg_scanner_mgr::create_scanner_g239} #else - {0x3072, PID_AND_NAME(100, SCANNER_NAME_HG_G100), "G100", "",& hg_scanner_mgr::create_scanner_g100} + {0x3072, PID_AND_NAME(100, SCANNER_NAME_HG_G100), "G100", "", &hg_scanner_mgr::create_scanner_g100} , {0x3072, PID_AND_NAME(139, SCANNER_NAME_HG_G100), "G100", "", &hg_scanner_mgr::create_scanner_g239} , {0x3072, PID_AND_NAME(200, SCANNER_NAME_HG_G200), "G200", "", &hg_scanner_mgr::create_scanner_g100} , {0x3072, PID_AND_NAME(239, SCANNER_NAME_HG_G200), "G200", "", &hg_scanner_mgr::create_scanner_g239} - , {0x3072, PID_AND_NAME(300, SCANNER_NAME_HG_G300), "G300", "",&hg_scanner_mgr::create_scanner_g300} - , {0x3072, PID_AND_NAME(302, SCANNER_NAME_HG_G300), "G300", "",&hg_scanner_mgr::create_scanner_g302} - , {0x3072, PID_AND_NAME(339, SCANNER_NAME_HG_G300), "G300", "",&hg_scanner_mgr::create_scanner_empty} + , {0x3072, PID_AND_NAME(300, SCANNER_NAME_HG_G300), "G300", "", &hg_scanner_mgr::create_scanner_g300} + , {0x3072, PID_AND_NAME(302, SCANNER_NAME_HG_G300), "G300", "", &hg_scanner_mgr::create_scanner_g302} + , {0x3072, PID_AND_NAME(339, SCANNER_NAME_HG_G300), "G300", "", &hg_scanner_mgr::create_scanner_empty} , {0x3072, PID_AND_NAME(400, SCANNER_NAME_HG_G400), "G400", "", &hg_scanner_mgr::create_scanner_g400} - , {0x3072, PID_AND_NAME(402, SCANNER_NAME_HG_G400), "G400", "",&hg_scanner_mgr::create_scanner_g402} - , {0x3072, PID_AND_NAME(439, SCANNER_NAME_HG_G400), "G400", "",&hg_scanner_mgr::create_scanner_g239} - , {0x064B, PID_AND_NAME(7823,SCANNER_NAME_HG_G200), "G200", "",&hg_scanner_mgr::create_scanner_g100} + , {0x3072, PID_AND_NAME(402, SCANNER_NAME_HG_G400), "G400", "", &hg_scanner_mgr::create_scanner_g402} + , {0x3072, PID_AND_NAME(439, SCANNER_NAME_HG_G400), "G400", "", &hg_scanner_mgr::create_scanner_g239} + , {0x064B, PID_AND_NAME(7823,SCANNER_NAME_HG_G200), "G200", "", &hg_scanner_mgr::create_scanner_g100} #endif }; static std::string g_vendor = COMPANY_NAME; diff --git a/hgsane/sane_hg_mdw.cpp b/hgsane/sane_hg_mdw.cpp index d0f03a3..95bebe6 100644 --- a/hgsane/sane_hg_mdw.cpp +++ b/hgsane/sane_hg_mdw.cpp @@ -281,7 +281,16 @@ namespace local_utility } int ui_cb(scanner_handle dev, int code, void* data, unsigned int* len, void* unused) { - std::lock_guard lck(cb_lock_); + sane_callback cb_ui = NULL; + void* cb_ui_parm = NULL; + SANE_Auth_Callback cb_auth = NULL; + + { + std::lock_guard lck(cb_lock_); + cb_ui = cb_ui_; + cb_ui_parm = cb_ui_parm_; + cb_auth_ = cb_auth; + } if (SANE_EVENT_SUPPORT_ASYNC_IO == code) return cb_ui_ ? SCANNER_ERR_OK : SCANNER_ERR_DEVICE_NOT_SUPPORT; @@ -290,14 +299,14 @@ namespace local_utility // VLOG_MINI_1(LOG_LEVEL_ALL, "sane callback invoked of event %s\n", sane_event((SANE_Event)code).c_str()); - if (cb_ui_) + if (cb_ui) { - return cb_ui_(h, code, data, len, cb_ui_parm_); + return cb_ui(h, code, data, len, cb_ui_parm); } - else if (cb_auth_ && code == SANE_EVENT_NEED_AUTH) + else if (cb_auth && code == SANE_EVENT_NEED_AUTH) { SANEAUTH* auth = (SANEAUTH*)data; - cb_auth_(auth->resource, auth->name, auth->pwd); + cb_auth(auth->resource, auth->name, auth->pwd); } return 0;