Merge branch 'dev' of http://192.168.10.5:8099/sane/code_app into dev
This commit is contained in:
commit
a9e444d7ec
|
@ -1036,6 +1036,10 @@ void HGAPI HGSaneDeviceImpl::ThreadFunc(HGThread thread, HGPointer param)
|
||||||
HGUInt doubleImgRet = HGBASE_ERR_OK;
|
HGUInt doubleImgRet = HGBASE_ERR_OK;
|
||||||
bool clickedReserveImg = false;
|
bool clickedReserveImg = false;
|
||||||
|
|
||||||
|
int imageCount =0;
|
||||||
|
int scanCount = -1;
|
||||||
|
p->GetScanCount(&scanCount);
|
||||||
|
|
||||||
while (!p->m_stopThread)
|
while (!p->m_stopThread)
|
||||||
{
|
{
|
||||||
SANE_Parameters params;
|
SANE_Parameters params;
|
||||||
|
@ -1152,6 +1156,7 @@ void HGAPI HGSaneDeviceImpl::ThreadFunc(HGThread thread, HGPointer param)
|
||||||
// 普通图片或第二个双张图片
|
// 普通图片或第二个双张图片
|
||||||
p->m_imageFunc((HGSaneDevice)p, img, HGSANE_IMAGE_TYPE_NORMAL, p->m_imageParam);
|
p->m_imageFunc((HGSaneDevice)p, img, HGSANE_IMAGE_TYPE_NORMAL, p->m_imageParam);
|
||||||
doubleImgRet = HGBASE_ERR_OK;
|
doubleImgRet = HGBASE_ERR_OK;
|
||||||
|
imageCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGBase_DestroyImage(img);
|
HGBase_DestroyImage(img);
|
||||||
|
@ -1162,7 +1167,11 @@ void HGAPI HGSaneDeviceImpl::ThreadFunc(HGThread thread, HGPointer param)
|
||||||
buffer = NULL;
|
buffer = NULL;
|
||||||
bufferSize = 0;
|
bufferSize = 0;
|
||||||
|
|
||||||
if (HGSANE_ERR_IMAGE_DISCARD == doubleImgRet)
|
// 保留双张后继续扫描,重置图像数量,然后重新按照指定张数扫描
|
||||||
|
if (clickedReserveImg)
|
||||||
|
imageCount = 0;
|
||||||
|
|
||||||
|
if (HGSANE_ERR_IMAGE_DISCARD == doubleImgRet || (imageCount == scanCount * 2 && !clickedReserveImg)) //图像数量和扫描张数对应时正常结束扫描,双张保留则继续扫描
|
||||||
{
|
{
|
||||||
saneAPI.sane_cancel_api(p->m_devHandle);
|
saneAPI.sane_cancel_api(p->m_devHandle);
|
||||||
if (NULL != p->m_scanNotify)
|
if (NULL != p->m_scanNotify)
|
||||||
|
@ -1185,11 +1194,16 @@ void HGAPI HGSaneDeviceImpl::ThreadFunc(HGThread thread, HGPointer param)
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (SANE_STATUS_GOOD != stat && HGSANE_ERR_UI_RESERVE_CHECK != doubleImgStat)
|
else if (SANE_STATUS_GOOD != stat)
|
||||||
{
|
{
|
||||||
if (NULL != p->m_scanNotify)
|
if ((SCANNER_ERR_DEVICE_DOUBLE_FEEDING != stat && HGSANE_ERR_UI_RESERVE_CHECK == doubleImgStat) ||
|
||||||
p->m_scanNotify((int)SANE_EVENT_SCAN_FINISHED, (void*)saneAPI.sane_strstatus_api(stat), (int)stat);
|
HGSANE_ERR_UI_RESERVE_CHECK != doubleImgStat)
|
||||||
break;
|
{
|
||||||
|
if (NULL != p->m_scanNotify)
|
||||||
|
p->m_scanNotify((int)SANE_EVENT_SCAN_FINISHED, (void*)saneAPI.sane_strstatus_api(stat), (int)stat);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SANE_STATUS_GOOD == stat)
|
if (SANE_STATUS_GOOD == stat)
|
||||||
|
|
Loading…
Reference in New Issue