modify return code when get image info for demo.exe

This commit is contained in:
gb 2023-05-19 13:54:32 +08:00
parent 292c0df30e
commit 8e0e64d7ae
1 changed files with 31 additions and 15 deletions

View File

@ -911,7 +911,7 @@ Result huagao_ds::capabilitySet(const Identity& origin, Capability& data)
Result huagao_ds::eventProcess(const Identity&, Event& event) Result huagao_ds::eventProcess(const Identity&, Event& event)
{ {
const MSG* msg = (const MSG*)event.event(); const MSG* msg = (const MSG*)event.event();
//if (scanner_.get()) //if (scanner_.get() && show_setting_)
//{ //{
// int ev = scanner_->get_event(); // int ev = scanner_->get_event();
// //
@ -1027,7 +1027,7 @@ Result huagao_ds::pendingXfersGet(const Identity&, PendingXfers& data)
if (!scanner_.get()) if (!scanner_.get())
return seqError(); return seqError();
// 显示设置界é<EFBFBD>¢æ—¶ï¼Œä¸<EFBFBD>能阻塞在EndXfer,å<EFBFBD>¦åˆ™æœ€å<EFBFBD>Žä¸€å¼ å¾ç‰‡ä¼ è¾“å<EFBFBD>Žæ˜¾ç¤ºä¸<EFBFBD>出æ<EFBFBD>¥ï¼Œæ•…此处将原æ<EFBFBD>¥-1çš„å<E2809E>数改为ä¸<C3A4>等待ï¼?ã€æ˜¾ç¤ºè®¾ç½®ç•Œé<C592>¢æ—¶ç´æŽ¥è¿”åžæœ‰å¾ç‰? // 显示设置界面时不能阻塞在EndXfer否则最后一张图片传输后显示不出来故在此做阻塞调用
// int cnt = get_scanned_image_count(-1); // int cnt = get_scanned_image_count(-1);
int cnt = show_setting_ ? 1 : get_scanned_image_count(-1); int cnt = show_setting_ ? 1 : get_scanned_image_count(-1);
data.setCount(cnt); data.setCount(cnt);
@ -1636,8 +1636,24 @@ Result huagao_ds::call(const Identity& origin, DataGroup dg, Dat dat, Msg msg, v
swprintf_s(buf, _countof(buf) - 1, L"[%x - %s]DSEntry(%s, %s, %s) = {%s, %s}\r\n", GetCurrentThreadId(), desc_state(state(), ss), swprintf_s(buf, _countof(buf) - 1, L"[%x - %s]DSEntry(%s, %s, %s) = {%s, %s}\r\n", GetCurrentThreadId(), desc_state(state(), ss),
desc_data_group(dg, dgs), desc_data(dat, dts), desc_msg(msg, ms), desc_return_code(rt, rcs), desc_condition_code((ConditionCode)(Status)rt, cs)); desc_data_group(dg, dgs), desc_data(dat, dts), desc_msg(msg, ms), desc_return_code(rt, rcs), desc_condition_code((ConditionCode)(Status)rt, cs));
load_sane_util::log_info(buf, 0); load_sane_util::log_info(buf, 0);
if ((int)rt.returnCode() && rt.returnCode() != ReturnCode::NotDsEvent && dat == Dat::PendingXfers && Msg::Reset == msg && scanner_status_ == SCANNER_STATUS_STOPPED) // PurvarScannerForHomework.exe - move modifying from EndXfer to xfer::Reset if ((int)rt.returnCode() && rt.returnCode() != ReturnCode::NotDsEvent)
rt = success(); {
if (dat == Dat::PendingXfers && Msg::Reset == msg && scanner_status_ == SCANNER_STATUS_STOPPED) // PurvarScannerForHomework.exe - move modifying from EndXfer to xfer::Reset
rt = success();
else if (rt.status() == ConditionCode::SeqError)
{
if (dat == Dat::ImageInfo && Msg::Get == msg && scanner_status_ == SCANNER_STATUS_STOPPED) // for demo.exe
{
rt = { ReturnCode::Success, ConditionCode::Bummer };
}
else if (dat == Dat::PendingXfers && Msg::EndXfer == msg && scanner_status_ == SCANNER_STATUS_STOPPED) // for photoshop.exe
{
// PendingXfers& data
(static_cast<PendingXfers*>(data))->setCount(0);
rt = { ReturnCode::Success, ConditionCode::Success };
}
}
}
} }
in_calling = calling; in_calling = calling;
@ -3583,17 +3599,17 @@ int huagao_ds::handle_scanner_event(int ev, bool from_event_proc)
case SANE_EVENT_UI_CLOSE_SETTING: case SANE_EVENT_UI_CLOSE_SETTING:
scanner_->ui_hide(); scanner_->ui_hide();
rc = notifyCloseCancel(); rc = notifyCloseCancel();
if (!Twpp::success(rc)) //if (!Twpp::success(rc))
{ //{
rc = notifyXferReady(); // 好分数需è¦<C3A8>å†<C3A5>通知 FAINT :( - modified on 2022-10-20 // rc = notifyXferReady(); // 濂藉垎鏁伴渶瑕佸啀閫氱煡 FAINT :( - modified on 2022-10-20
if (!Twpp::success(rc)) // if (!Twpp::success(rc))
{ // {
wchar_t msg[128] = { 0 }, unk[20] = { 0 }; // wchar_t msg[128] = { 0 }, unk[20] = { 0 };
swprintf_s(msg, _countof(msg) - 1, L"[%x]yscan: notifyXferReady failed after setting UI closed with error %d\r\n", GetCurrentThreadId(), rc); // swprintf_s(msg, _countof(msg) - 1, L"[%x]yscan: notifyXferReady failed after setting UI closed with error %d\r\n", GetCurrentThreadId(), rc);
load_sane_util::log_info(msg, 0); // load_sane_util::log_info(msg, 0);
} // }
rc = notifyCloseCancel(); // rc = notifyCloseCancel();
} //}
show_setting_ = false; show_setting_ = false;
break; break;
case SANE_EVENT_UI_CLOSE_CANCEL: case SANE_EVENT_UI_CLOSE_CANCEL: