调整回调注册时机
This commit is contained in:
parent
f40484650d
commit
5dbba10ee1
|
@ -85,8 +85,14 @@ namespace callback
|
|||
if (it != g_scanner_instances.end())
|
||||
return it->invoker->handle_device_event(code, data, len);
|
||||
else
|
||||
{
|
||||
wchar_t msg[218] = { 0 };
|
||||
swprintf_s(msg, _countof(msg) - 1, L"Lost device(0x%08X) when event(%u) occurs!\r\n", hdev, code);
|
||||
log_info(msg, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
void reg_callback(SANE_Handle dev, scanner* invoker)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(cb_lock_);
|
||||
|
@ -132,7 +138,6 @@ scanner::scanner(SCANNERID id) : handle_(NULL), id_(id), ex_id_(EXTENSION_ID_BAS
|
|||
}
|
||||
scanner::~scanner()
|
||||
{
|
||||
callback::unreg_callback(this);
|
||||
if (cfg_)
|
||||
delete cfg_;
|
||||
}
|
||||
|
@ -282,8 +287,8 @@ int scanner::open(void)
|
|||
ret = hg_sane_middleware::instance()->open_device(name.c_str(), &handle_);
|
||||
if (ret == SANE_STATUS_GOOD)
|
||||
{
|
||||
scanner_name_ = local_trans::a2u(name.c_str(), CP_UTF8);
|
||||
callback::reg_callback(handle_, this);
|
||||
scanner_name_ = local_trans::a2u(name.c_str(), CP_UTF8);
|
||||
ret = init_options_id();
|
||||
load_config((cfg_path_ + scanner_name_).c_str());
|
||||
// apply_config();
|
||||
|
@ -293,6 +298,7 @@ int scanner::open(void)
|
|||
}
|
||||
int scanner::close(void)
|
||||
{
|
||||
callback::unreg_callback(this);
|
||||
if (handle_)
|
||||
hg_sane_middleware::instance()->close_device(handle_);
|
||||
handle_ = NULL;
|
||||
|
|
Loading…
Reference in New Issue