This commit is contained in:
yangjiaxuan 2023-08-03 11:22:09 +08:00
parent 146521f743
commit 6c27035e54
1 changed files with 19 additions and 19 deletions

View File

@ -1,4 +1,4 @@

#include "scanner.h"
@ -85,13 +85,13 @@ namespace callback
}SCNINST;
std::vector<SCNINST> g_scanner_instances;
int sane_event_callback( // 注册åžè°ƒçš„对象,需è¦<EFBFBD>ä¿<EFBFBD>è¯<EFBFBD>该åžè°ƒæ˜¯å¤šçº¿ç¨å®‰å…¨çš?
SANE_Handle hdev // 产生äºä»¶çš„设备å<EFBFBD>¥æŸ?
, int code // åžè°ƒäºä»¶ä»£ç <EFBFBD>
, void* data // åžè°ƒäºä»¶æ•°æ<EFBFBD>®ï¼Œæ ¹æ<EFBFBD>®äºä»¶ä»£ç <EFBFBD>有所ä¸<EFBFBD>å<EFBFBD>Œï¼Œå<EFBFBD>照具体äºä»¶å®šä¹?
, unsigned int* len // æ•°æ<EFBFBD>®é•¿åº¦ï¼ˆå­—èŠï¼‰ï¼Œæˆè€…event_data的缓冲区长度,详细请çœç¸åº”çš„äºä»¶ä»£ç <EFBFBD>
, void* param // 用户自定义数æ<EFBFBD>®ï¼Œä¸Žè°ƒç”¨sane_init_ex传入时的ä¿<EFBFBD>æŒ<EFBFBD>一è‡?
) // è¿”åžå€¼ä¾<EFBFBD>ä¸<EFBFBD>å<EFBFBD>Œçš„äºä»¶ä»£ç <EFBFBD>而定,通常为â€?â€?
int sane_event_callback( // 娉ㄥ唽鍥炶皟鐨勫璞★紝闇€瑕佷繚璇佽鍥炶皟鏄绾跨▼瀹夊叏鐨?
SANE_Handle hdev // 浜х敓浜嬩欢鐨勮澶囧彞鏌?
, int code // 鍥炶皟浜嬩欢浠g爜
, void* data // 鍥炶皟浜嬩欢鏁版嵁锛屾牴鎹簨浠朵唬鐮佹湁鎵€涓嶅悓锛屽弬鐓у叿浣撲簨浠跺畾涔?
, unsigned int* len // 鏁版嵁闀垮害锛堝瓧鑺傦級锛屾垨鑰卐vent_data鐨勭紦鍐插尯闀垮害锛岃缁嗚鐪嬬浉搴旂殑浜嬩欢浠
, void* param // 鐢ㄦ埛鑷畾涔夋暟鎹紝涓庤皟鐢╯ane_init_ex浼犲叆鏃剁殑淇濇寔涓€鑷?
) // 杩斿洖鍊间緷涓嶅悓鐨勪簨浠朵唬鐮佽€屽畾锛岄€氬父涓衡€?鈥?
{
std::lock_guard<std::mutex> lock(cb_lock_);
std::vector<SCNINST>::iterator it = std::find(g_scanner_instances.begin(), g_scanner_instances.end(), hdev);
@ -207,10 +207,10 @@ namespace callback
, {SANE_STD_OPT_NAME_FOLD_TYPE , OPTION_TITLE_DZMS}
, {SANE_STD_OPT_NAME_COLOR_CORRECTION , OPTION_TITLE_SPJZ}
},
g_discard[] = { {SANE_STD_OPT_NAME_REVERSE_01 , "\351\273\221\347\231\275\345\233\276\345\203\217\345\217\215\350\211\262\350\276\223\345\207\272\357\274\210\346\255\243\345\270\270\351\242\234\350\211\262\344\270\272\357\274\2320-\351\273\221\350\211\262\357\274\2331-\347\231\275\350\211\262\357\274\211"} // é»ç™½å¾åƒ<EFBFBD>å<EFBFBD><EFBFBD>色输出(正常颜色为ï¼?-黑色ï¼?-白色ï¼?
, {SANE_STD_OPT_NAME_FILTER , "\347\201\260\345\272\246\346\210\226\351\273\221\347\231\275\345\233\276\345\203\217 - \351\231\244\350\211\262"} // ç<EFBFBD>°åº¦æˆé»ç™½å¾åƒ?- 除色
, {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // 自动æ<EFBFBD>“纸强度
, {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , "\346\220\223\347\272\270\351\230\210\345\200\274"} // " æ<EFBFBD>“纸阈å€?
g_discard[] = { {SANE_STD_OPT_NAME_REVERSE_01 , "\351\273\221\347\231\275\345\233\276\345\203\217\345\217\215\350\211\262\350\276\223\345\207\272\357\274\210\346\255\243\345\270\270\351\242\234\350\211\262\344\270\272\357\274\2320-\351\273\221\350\211\262\357\274\2331-\347\231\275\350\211\262\357\274\211"} // 榛戠櫧鍥惧儚鍙嶈壊杈撳嚭锛堟甯搁鑹蹭负锛?-榛戣壊锛?-鐧借壊锛?
, {SANE_STD_OPT_NAME_FILTER , "\347\201\260\345\272\246\346\210\226\351\273\221\347\231\275\345\233\276\345\203\217 - \351\231\244\350\211\262"} // 鐏板害鎴栭粦鐧藉浘鍍?- 闄よ壊
, {SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH , "\350\207\252\345\212\250\346\220\223\347\272\270\345\274\272\345\272\246"} // 鑷姩鎼撶焊寮哄害
, {SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE , "\346\220\223\347\272\270\351\230\210\345\200\274"} // " 鎼撶焊闃堝€?
};
const char* option_title_2_name(const char* title)
{
@ -347,12 +347,12 @@ namespace callback
// SANE_EVENT_IMAGE_OK - void* unused, be NULL, flag - unused, be 0
static HMODULE hui = NULL;
int (*choose_scanner)(const std::vector<DEVQUEUI>& devs) = NULL; // blocked. return selected DEVQUE::id or -1 if user cancelled
char* (*apply_current_config)(const char* dev_name, SANE_Handle device, LPSANEAPI api) = NULL; // 应用设备的当å‰<EFBFBD>é…<EFBFBD>ï¿?
char* (*apply_current_config)(const char* dev_name, SANE_Handle device, LPSANEAPI api) = NULL; // 搴旂敤璁惧鐨勫綋鍓嶉厤锟?
int (*show_setting_ui)(SANE_Handle device, HWND parent, LPSANEAPI api, const char* devname, bool with_scan, std::function<void(ui_result)> callback) = NULL;
int (*show_progress_ui)(HWND parent, std::function<void(ui_result)> callback, std::function<void(int/*event*/, void*/*msg*/, int/*flag*/)>* notify) = NULL;
int (*show_messagebox_ui)(HWND parent, int event, void* msg, int flag) = NULL;
int (*close_ui)(int) = NULL;
int (*apply_given_config)(const char* content, SANE_Handle device, LPSANEAPI api) = NULL; // 应用指定的é…<EFBFBD>置,content为é…<EFBFBD>置数æ<EFBFBD>®æµ<EFBFBD>
int (*apply_given_config)(const char* content, SANE_Handle device, LPSANEAPI api) = NULL; // 搴旂敤鎸囧畾鐨勯厤缃紝content涓洪厤缃暟鎹祦
char* (*get_config_content)(const char* dev_name, const char* name) = NULL;
void (*twain_ui_free)(void* buf) = NULL;
@ -945,7 +945,7 @@ int scanner::open(void)
{
if (callback::show_messagebox_ui)
{
// 纸轮æ<EFBFBD>“纸次数已超过设计使用范å´ï¼Œæ‰«æ<EFBFBD><EFBFBD>过ç¨ä¸­æ<EFBFBD>“纸失败ã€<EFBFBD>æ­ªæœã€<EFBFBD>æ<EFBFBD>“多张等å¼å¸¸é¢æ¬¡å<EFBFBD>¯èƒ½ä¼šæ˜Žæ˜¾å¢žå¤šï¼Œè¯·æ³¨æ„<EFBFBD>å<EFBFBD>Šæ—¶æ¸…æ´<EFBFBD>ã€<EFBFBD>并è<EFBFBD>”系设备ä¾åº”商购买æ¿æ<EFBFBD>¢çº¸è½®ï¼<EFBFBD>
// 绾歌疆鎼撶焊娆℃暟宸茶秴杩囪璁′娇鐢ㄨ寖鍥达紝鎵弿杩囩▼涓悡绾稿け璐ャ€佹鏂溿€佹悡澶氬紶绛夊紓甯搁娆″彲鑳戒細鏄庢樉澧炲锛岃娉ㄦ剰鍙婃椂娓呮磥銆佸苟鑱旂郴璁惧渚涘簲鍟嗚喘涔版浛鎹㈢焊杞紒
std::wstring roller_msgw(local_trans::lang_trans_between_hz936(L"\u7EB8\u8F6E\u6413\u7EB8\u6B21\u6570\u5DF2\u8D85\u8FC7\u8BBE\u8BA1\u4F7F\u7528\u8303\u56F4\uFF0C\u626B\u63CF\u8FC7\u7A0B\u4E2D\u6413\u7EB8\u5931\u8D25\u3001\u6B6A\u659C\u3001\u6413\u591A\u5F20\u7B49\u5F02\u5E38\u9891\u6B21\u53EF\u80FD\u4F1A\u660E\u663E\u589E\u591A\uFF0C\u8BF7\u6CE8\u610F\u53CA\u65F6\u6E05\u6D01\u3001\u5E76\u8054\u7CFB\u8BBE\u5907\u4F9B\u5E94\u5546\u8D2D\u4E70\u66FF\u6362\u7EB8\u8F6E\uFF01"));
std::string roller_msg(local_trans::u2a(roller_msgw.c_str(), CP_UTF8));
app_wnd_ = callback::find_main_wnd();
@ -1159,7 +1159,7 @@ int scanner::init_options_id(void)
if (is_erase_hole_id_ == -1)
{
// 兼容è€<EFBFBD>的除孔算法
// 鍏煎鑰佺殑闄ゅ瓟绠楁硶
EXAPI ea;
ea.ind = is_erase_hole_id_ = ex_id_++;
@ -2674,7 +2674,7 @@ COM_API_IMPLEMENT(scanner, IScanImg*, take_first_image(twain_xfer xfer))
if (img)
{
img->prepare_data_for_transfer(xfer);
//img->prepare_data_for_transfer(xfer);
wchar_t msg[128] = { 0 };
swprintf_s(msg, _countof(msg) - 1, L"Begin transferring image %d of %p\r\n", fetch_imgs_ + 1, img);
@ -3497,13 +3497,13 @@ int scanner::handle_device_event(int ev_code, void* data, unsigned int* len)
log_info(msg, 1);
}
}
//else if (ev_code == SANE_EVENT_ERROR) // å±<EFBFBD>蔽,在å<EFBFBD>œæ­¢æ‰«æ<EFBFBD><EFBFBD>时展示信æ<EFBFBD>?- 2023-05-30
//else if (ev_code == SANE_EVENT_ERROR) // 灞忚斀锛屽湪鍋滄鎵弿鏃跺睍绀轰俊鎭?- 2023-05-30
//{
// if (callback::show_messagebox_ui && *len)
// {
// callback::show_messagebox_ui(app_wnd_, ev_code, (void*)data, 0);
// }
// else if (*len) //错误弹出
// else if (*len) //閿欒寮瑰嚭
// {
// std::wstring msg(local_trans::a2u((char*)data, CP_UTF8));
// if (!IsWindow(app_wnd_))