HGWebScan:优化切换设备功能
This commit is contained in:
parent
cc6bbf1b6a
commit
aa20c3105b
|
@ -394,24 +394,6 @@ void WebUser::GetDeviceList(cJSON* json)
|
|||
void WebUser::SelectDevice(cJSON* json)
|
||||
{
|
||||
assert(NULL != json);
|
||||
|
||||
if (NULL != m_scanEvent)
|
||||
{
|
||||
assert(NULL != m_devHandle);
|
||||
sane_cancel(m_devHandle);
|
||||
|
||||
HGBase_WaitEvent(m_scanEvent);
|
||||
HGBase_DestroyEvent(m_scanEvent);
|
||||
m_scanEvent = NULL;
|
||||
}
|
||||
|
||||
if (NULL != m_devHandle)
|
||||
{
|
||||
m_dpi = 96;
|
||||
sane_close(m_devHandle);
|
||||
m_devHandle = NULL;
|
||||
m_devName.clear();
|
||||
}
|
||||
|
||||
int code = -1;
|
||||
std::string result = "错误";
|
||||
|
@ -421,16 +403,42 @@ void WebUser::SelectDevice(cJSON* json)
|
|||
HGBase_EnterLock(m_lockName);
|
||||
if (index >= 0 && index < (int)m_devNameList.size())
|
||||
{
|
||||
SANE_Handle dev = NULL;
|
||||
SANE_Status status = sane_open(m_devNameList[index].c_str(), &dev);
|
||||
if (SANE_STATUS_GOOD == status)
|
||||
if (m_devNameList[index] == m_devName)
|
||||
{
|
||||
m_devName = m_devNameList[index];
|
||||
m_devHandle = dev;
|
||||
m_dpi = GetDpi();
|
||||
code = 0;
|
||||
result.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (NULL != m_scanEvent)
|
||||
{
|
||||
assert(NULL != m_devHandle);
|
||||
sane_cancel(m_devHandle);
|
||||
|
||||
HGBase_WaitEvent(m_scanEvent);
|
||||
HGBase_DestroyEvent(m_scanEvent);
|
||||
m_scanEvent = NULL;
|
||||
}
|
||||
|
||||
if (NULL != m_devHandle)
|
||||
{
|
||||
m_dpi = 96;
|
||||
sane_close(m_devHandle);
|
||||
m_devHandle = NULL;
|
||||
m_devName.clear();
|
||||
}
|
||||
|
||||
SANE_Handle dev = NULL;
|
||||
SANE_Status status = sane_open(m_devNameList[index].c_str(), &dev);
|
||||
if (SANE_STATUS_GOOD == status)
|
||||
{
|
||||
m_devName = m_devNameList[index];
|
||||
m_devHandle = dev;
|
||||
m_dpi = GetDpi();
|
||||
code = 0;
|
||||
result.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
HGBase_LeaveLock(m_lockName);
|
||||
|
||||
|
|
Loading…
Reference in New Issue