sane回调函数中,仅仅将扫描相关的事件下发到dll

This commit is contained in:
luoliangyi 2022-12-27 09:55:42 +08:00
parent c447a13017
commit f5bfdf0468
2 changed files with 13 additions and 15 deletions

View File

@ -82,9 +82,10 @@ MainWindow::~MainWindow()
sane_exit(); sane_exit();
HGPdtToolDb_DestroyUserMgr(m_pdtToolDbuserMgr); HGPdtToolDb_DestroyUserMgr(m_pdtToolDbuserMgr);
m_pdtToolDbuserMgr = NULL; m_pdtToolDbuserMgr = nullptr;
HGBase_DestroyLock(m_lock); HGBase_DestroyLock(m_lock);
m_lock = nullptr;
delete ui; delete ui;
} }
@ -232,20 +233,16 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigne
{ {
SANE_Device_Ex* sane_dev = (SANE_Device_Ex*)data; SANE_Device_Ex* sane_dev = (SANE_Device_Ex*)data;
emit p->sane_dev_arrive(sane_dev->name); emit p->sane_dev_arrive(sane_dev->name);
return 0;
} }
else if (SANE_EVENT_DEVICE_LEFT == code) else if (SANE_EVENT_DEVICE_LEFT == code)
{ {
SANE_Device* sane_dev = (SANE_Device*)data; SANE_Device* sane_dev = (SANE_Device*)data;
emit p->sane_dev_remove(sane_dev->name); emit p->sane_dev_remove(sane_dev->name);
return 0;
} }
if (!hdev) if (code == SANE_EVENT_STATUS || code == SANE_EVENT_ERROR || code == SANE_EVENT_WORKING
|| code == SANE_EVENT_IMAGE_OK || code == SANE_EVENT_SCAN_FINISHED)
{ {
return -1;
}
HGBase_EnterLock(p->m_lock); HGBase_EnterLock(p->m_lock);
Form_mainInterface* interface = p->FindInterface(hdev); Form_mainInterface* interface = p->FindInterface(hdev);
if (nullptr != interface) if (nullptr != interface)
@ -254,6 +251,7 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigne
interface->getScanner()->cb_(hdev, code, data, len, interface->getScanner()); interface->getScanner()->cb_(hdev, code, data, len, interface->getScanner());
} }
HGBase_LeaveLock(p->m_lock); HGBase_LeaveLock(p->m_lock);
}
return 0; return 0;
} }

View File

@ -87,7 +87,7 @@ HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const
} }
unsigned int timeout = 2; unsigned int timeout = 2;
mysql_options(sql, MYSQL_OPT_CONNECT_TIMEOUT, (const char*)&timeout); mysql_options(sql, MYSQL_OPT_CONNECT_TIMEOUT, &timeout);
if (NULL == mysql_real_connect(sql, host, "huago", "huago", "huago_production_tool", port, NULL, 0)) if (NULL == mysql_real_connect(sql, host, "huago", "huago", "huago_production_tool", port, NULL, 0))
{ {