调整回调注册时机
This commit is contained in:
parent
f40484650d
commit
5dbba10ee1
|
@ -85,8 +85,14 @@ namespace callback
|
||||||
if (it != g_scanner_instances.end())
|
if (it != g_scanner_instances.end())
|
||||||
return it->invoker->handle_device_event(code, data, len);
|
return it->invoker->handle_device_event(code, data, len);
|
||||||
else
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
void reg_callback(SANE_Handle dev, scanner* invoker)
|
void reg_callback(SANE_Handle dev, scanner* invoker)
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(cb_lock_);
|
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()
|
scanner::~scanner()
|
||||||
{
|
{
|
||||||
callback::unreg_callback(this);
|
|
||||||
if (cfg_)
|
if (cfg_)
|
||||||
delete cfg_;
|
delete cfg_;
|
||||||
}
|
}
|
||||||
|
@ -282,8 +287,8 @@ int scanner::open(void)
|
||||||
ret = hg_sane_middleware::instance()->open_device(name.c_str(), &handle_);
|
ret = hg_sane_middleware::instance()->open_device(name.c_str(), &handle_);
|
||||||
if (ret == SANE_STATUS_GOOD)
|
if (ret == SANE_STATUS_GOOD)
|
||||||
{
|
{
|
||||||
scanner_name_ = local_trans::a2u(name.c_str(), CP_UTF8);
|
|
||||||
callback::reg_callback(handle_, this);
|
callback::reg_callback(handle_, this);
|
||||||
|
scanner_name_ = local_trans::a2u(name.c_str(), CP_UTF8);
|
||||||
ret = init_options_id();
|
ret = init_options_id();
|
||||||
load_config((cfg_path_ + scanner_name_).c_str());
|
load_config((cfg_path_ + scanner_name_).c_str());
|
||||||
// apply_config();
|
// apply_config();
|
||||||
|
@ -293,6 +298,7 @@ int scanner::open(void)
|
||||||
}
|
}
|
||||||
int scanner::close(void)
|
int scanner::close(void)
|
||||||
{
|
{
|
||||||
|
callback::unreg_callback(this);
|
||||||
if (handle_)
|
if (handle_)
|
||||||
hg_sane_middleware::instance()->close_device(handle_);
|
hg_sane_middleware::instance()->close_device(handle_);
|
||||||
handle_ = NULL;
|
handle_ = NULL;
|
||||||
|
|
Loading…
Reference in New Issue