Merge branch 'dev' of http://192.168.10.5:8099/sane/code_app into dev
This commit is contained in:
commit
23979437ef
|
@ -2,9 +2,11 @@ LIBRARY
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
|
|
||||||
|
HGLib_MemoryCopy
|
||||||
HGLib_LoadImage
|
HGLib_LoadImage
|
||||||
HGLib_GetImageData
|
HGLib_GetImageData
|
||||||
HGLib_GetImageInfo
|
HGLib_GetImageInfo
|
||||||
|
HGLib_GetImageDpi
|
||||||
HGLib_SaveImage
|
HGLib_SaveImage
|
||||||
HGLib_ReleaseImage
|
HGLib_ReleaseImage
|
||||||
HGLib_InitDevice
|
HGLib_InitDevice
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -18,6 +18,17 @@ struct HGLibSaveImageParam_V1
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
HGBool HGAPI HGLib_MemoryCopy(HGVoid *dest, const HGVoid *src, HGUInt size)
|
||||||
|
{
|
||||||
|
if (NULL == dest || NULL == src || 0 == size)
|
||||||
|
{
|
||||||
|
return HGFALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(dest, src, size);
|
||||||
|
return HGTRUE;
|
||||||
|
}
|
||||||
|
|
||||||
HGLibImage HGAPI HGLib_LoadImage(const HGChar* filePath)
|
HGLibImage HGAPI HGLib_LoadImage(const HGChar* filePath)
|
||||||
{
|
{
|
||||||
if (NULL == filePath)
|
if (NULL == filePath)
|
||||||
|
@ -63,6 +74,17 @@ HGBool HGAPI HGLib_GetImageInfo(HGLibImage image, HGLibImageInfo* imageInfo)
|
||||||
return HGTRUE;
|
return HGTRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HGBool HGAPI HGLib_GetImageDpi(HGLibImage image, HGUInt *xDpi, HGUInt *yDpi)
|
||||||
|
{
|
||||||
|
if (NULL == image || NULL == xDpi || NULL == yDpi)
|
||||||
|
{
|
||||||
|
return HGFALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
HGBase_GetImageDpi((HGImage)image, xDpi, yDpi);
|
||||||
|
return HGTRUE;
|
||||||
|
}
|
||||||
|
|
||||||
HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam)
|
HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam)
|
||||||
{
|
{
|
||||||
if (NULL == image || NULL == savePath)
|
if (NULL == image || NULL == savePath)
|
||||||
|
|
|
@ -509,6 +509,9 @@ typedef void (HGAPI *HGLibDeviceScanEventFunc)(HGLibDevice device, HGUInt event,
|
||||||
*/
|
*/
|
||||||
typedef void (HGAPI *HGLibDeviceScanImageFunc)(HGLibDevice device, HGLibImage image, HGPointer param);
|
typedef void (HGAPI *HGLibDeviceScanImageFunc)(HGLibDevice device, HGLibImage image, HGPointer param);
|
||||||
|
|
||||||
|
/* 内存拷贝 */
|
||||||
|
HGEXPORT HGBool HGAPI HGLib_MemoryCopy(HGVoid *dest, const HGVoid *src, HGUInt size);
|
||||||
|
|
||||||
/* 加载图像 */
|
/* 加载图像 */
|
||||||
HGEXPORT HGLibImage HGAPI HGLib_LoadImage(const HGChar *filePath);
|
HGEXPORT HGLibImage HGAPI HGLib_LoadImage(const HGChar *filePath);
|
||||||
|
|
||||||
|
@ -518,6 +521,9 @@ HGEXPORT HGByte* HGAPI HGLib_GetImageData(HGLibImage image);
|
||||||
/* 获取图像信息 */
|
/* 获取图像信息 */
|
||||||
HGEXPORT HGBool HGAPI HGLib_GetImageInfo(HGLibImage image, HGLibImageInfo* imageInfo);
|
HGEXPORT HGBool HGAPI HGLib_GetImageInfo(HGLibImage image, HGLibImageInfo* imageInfo);
|
||||||
|
|
||||||
|
/* 获取图像DPI */
|
||||||
|
HGEXPORT HGBool HGAPI HGLib_GetImageDpi(HGLibImage image, HGUInt *xDpi, HGUInt *yDpi);
|
||||||
|
|
||||||
/* 保存图像 */
|
/* 保存图像 */
|
||||||
HGEXPORT HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam);
|
HGEXPORT HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam);
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ extern "C"
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include "SockIoUser.h"
|
||||||
|
|
||||||
namespace ver_1
|
namespace ver_1
|
||||||
{
|
{
|
||||||
|
@ -154,10 +155,7 @@ namespace ver_1
|
||||||
HGBase_CreateLock(&m_lock);
|
HGBase_CreateLock(&m_lock);
|
||||||
m_devName.clear();
|
m_devName.clear();
|
||||||
m_devHandle = NULL;
|
m_devHandle = NULL;
|
||||||
m_saneEvent = NULL;
|
m_user.clear();
|
||||||
m_saneParam = NULL;
|
|
||||||
m_saneImageCallback = NULL;
|
|
||||||
m_saneImageParam = NULL;
|
|
||||||
|
|
||||||
m_scanInsertImgName.clear();
|
m_scanInsertImgName.clear();
|
||||||
m_scanIsInsert = false;
|
m_scanIsInsert = false;
|
||||||
|
@ -236,39 +234,27 @@ namespace ver_1
|
||||||
StopScan();
|
StopScan();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ManagerV1::SetSaneEvent(SaneEvent event, void* param)
|
void ManagerV1::AddUser(class SockIoUser *user)
|
||||||
{
|
{
|
||||||
assert(NULL != event && NULL != param);
|
assert(NULL != user);
|
||||||
|
|
||||||
HGBase_EnterLock(m_lock);
|
HGBase_EnterLock(m_lock);
|
||||||
m_saneEvent = event;
|
m_user.push_back(user);
|
||||||
m_saneParam = param;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
HGBase_LeaveLock(m_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ManagerV1::SetSaneImageCallback(SaneImageCallback func, void* param)
|
void ManagerV1::RemoveUser(class SockIoUser *user)
|
||||||
{
|
{
|
||||||
assert(NULL != func && NULL != param);
|
assert(NULL != user);
|
||||||
|
|
||||||
HGBase_EnterLock(m_lock);
|
HGBase_EnterLock(m_lock);
|
||||||
m_saneImageCallback = func;
|
std::list<class SockIoUser *>::iterator iter;
|
||||||
m_saneImageParam = param;
|
for (iter = m_user.begin(); iter != m_user.end(); ++iter)
|
||||||
HGBase_LeaveLock(m_lock);
|
{
|
||||||
|
if (*iter == user)
|
||||||
|
{
|
||||||
|
m_user.erase(iter);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ManagerV1::ResetSaneEvent()
|
|
||||||
{
|
|
||||||
HGBase_EnterLock(m_lock);
|
|
||||||
m_saneEvent = NULL;
|
|
||||||
m_saneParam = NULL;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ManagerV1::ResetSaneImageCallback()
|
|
||||||
{
|
|
||||||
HGBase_EnterLock(m_lock);
|
|
||||||
m_saneImageCallback = NULL;
|
|
||||||
m_saneImageParam = NULL;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
HGBase_LeaveLock(m_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1756,8 +1742,11 @@ namespace ver_1
|
||||||
}
|
}
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class SockIoUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_ARRIVE, sane_dev->name, false, p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
SockIoUser::SaneEvent(SANEEVENT_ARRIVE, sane_dev->name, false, *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1779,8 +1768,11 @@ namespace ver_1
|
||||||
}
|
}
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class SockIoUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_REMOVE, sane_dev->name, false, p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
SockIoUser::SaneEvent(SANEEVENT_REMOVE, sane_dev->name, false, *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1789,8 +1781,11 @@ namespace ver_1
|
||||||
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_STATUS, msg=%s", Utf8ToStdString((char*)data).c_str());
|
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_STATUS, msg=%s", Utf8ToStdString((char*)data).c_str());
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class SockIoUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_STATUS, (const char*)data, false, p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
SockIoUser::SaneEvent(SANEEVENT_STATUS, (const char*)data, false, *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1799,8 +1794,11 @@ namespace ver_1
|
||||||
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_ERROR, msg=%s", Utf8ToStdString((char*)data).c_str());
|
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_ERROR, msg=%s", Utf8ToStdString((char*)data).c_str());
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class SockIoUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_ERROR, (const char*)data, (0 != *len), p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
SockIoUser::SaneEvent(SANEEVENT_ERROR, (const char*)data, (0 != *len), *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1809,8 +1807,11 @@ namespace ver_1
|
||||||
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_WORKING, msg=%s", Utf8ToStdString((char*)data).c_str());
|
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_WORKING, msg=%s", Utf8ToStdString((char*)data).c_str());
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class SockIoUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_WORKING, (const char*)data, false, p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
SockIoUser::SaneEvent(SANEEVENT_WORKING, (const char*)data, false, *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1896,8 +1897,11 @@ namespace ver_1
|
||||||
imgBase64 += GetBase64(img);
|
imgBase64 += GetBase64(img);
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneImageCallback)
|
std::list<class SockIoUser *>::iterator iter;
|
||||||
p->m_saneImageCallback(imgName.c_str(), imgBase64.c_str(), p->m_saneImageParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
SockIoUser::SaneImageCallback(imgName.c_str(), imgBase64.c_str(), *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
|
|
||||||
HGBase_DestroyImage(img);
|
HGBase_DestroyImage(img);
|
||||||
|
@ -1922,8 +1926,11 @@ namespace ver_1
|
||||||
}
|
}
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class SockIoUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_FINISH, (const char*)data, (0 != *len), p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
SockIoUser::SaneEvent(SANEEVENT_FINISH, (const char*)data, (0 != *len), *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "Manager.h"
|
#include "Manager.h"
|
||||||
#include "Msg.h"
|
#include "Msg.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <list>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
namespace ver_1
|
namespace ver_1
|
||||||
|
@ -87,9 +88,6 @@ namespace ver_1
|
||||||
int format; // 上传格式 0: ofd 1: pdf 2: zip, 默认2
|
int format; // 上传格式 0: ofd 1: pdf 2: zip, 默认2
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef void (*SaneEvent)(int code, const char* str, bool err, void* param);
|
|
||||||
typedef void (*SaneImageCallback)(const char* name, const char *base64, void* param);
|
|
||||||
|
|
||||||
class ManagerV1 : public Manager
|
class ManagerV1 : public Manager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -103,12 +101,8 @@ namespace ver_1
|
||||||
// 扫描完成
|
// 扫描完成
|
||||||
void ScanFinish(const ScanFinishParam* param);
|
void ScanFinish(const ScanFinishParam* param);
|
||||||
|
|
||||||
// 设置回调
|
void AddUser(class SockIoUser *user);
|
||||||
void SetSaneEvent(SaneEvent event, void* param);
|
void RemoveUser(class SockIoUser *user);
|
||||||
void SetSaneImageCallback(SaneImageCallback func, void* param);
|
|
||||||
// 清理回调
|
|
||||||
void ResetSaneEvent();
|
|
||||||
void ResetSaneImageCallback();
|
|
||||||
|
|
||||||
// 扫描
|
// 扫描
|
||||||
bool Scan(const std::string& insertImgName, bool isInsert);
|
bool Scan(const std::string& insertImgName, bool isInsert);
|
||||||
|
@ -189,10 +183,7 @@ namespace ver_1
|
||||||
std::string m_devName;
|
std::string m_devName;
|
||||||
SANE_Handle m_devHandle;
|
SANE_Handle m_devHandle;
|
||||||
DevParam m_devParam;
|
DevParam m_devParam;
|
||||||
SaneEvent m_saneEvent;
|
std::list<class SockIoUser *> m_user;
|
||||||
void* m_saneParam;
|
|
||||||
SaneImageCallback m_saneImageCallback;
|
|
||||||
void* m_saneImageParam;
|
|
||||||
|
|
||||||
std::string m_scanInsertImgName;
|
std::string m_scanInsertImgName;
|
||||||
bool m_scanIsInsert;
|
bool m_scanIsInsert;
|
||||||
|
|
|
@ -22,6 +22,7 @@ extern "C"
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include "WSUser.h"
|
||||||
|
|
||||||
namespace ver_2
|
namespace ver_2
|
||||||
{
|
{
|
||||||
|
@ -50,10 +51,7 @@ namespace ver_2
|
||||||
HGBase_StandardiseFileName(m_globalCfg.fileSavePath.c_str(), stdSavePath, 256);
|
HGBase_StandardiseFileName(m_globalCfg.fileSavePath.c_str(), stdSavePath, 256);
|
||||||
m_globalCfg.fileSavePath = stdSavePath;
|
m_globalCfg.fileSavePath = stdSavePath;
|
||||||
|
|
||||||
m_saneEvent = NULL;
|
m_user.clear();
|
||||||
m_saneParam = NULL;
|
|
||||||
m_saneImageCallback = NULL;
|
|
||||||
m_saneImageParam = NULL;
|
|
||||||
|
|
||||||
m_initDevice = false;
|
m_initDevice = false;
|
||||||
m_devNameList.clear();
|
m_devNameList.clear();
|
||||||
|
@ -207,39 +205,27 @@ namespace ver_2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ManagerV2::SetSaneEvent(SaneEvent event, void* param)
|
void ManagerV2::AddUser(class WSUser *user)
|
||||||
{
|
{
|
||||||
assert(NULL != event && NULL != param);
|
assert(NULL != user);
|
||||||
|
|
||||||
HGBase_EnterLock(m_lock);
|
HGBase_EnterLock(m_lock);
|
||||||
m_saneEvent = event;
|
m_user.push_back(user);
|
||||||
m_saneParam = param;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
HGBase_LeaveLock(m_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ManagerV2::SetSaneImageCallback(SaneImageCallback func, void* param)
|
void ManagerV2::RemoveUser(class WSUser *user)
|
||||||
{
|
{
|
||||||
assert(NULL != func && NULL != param);
|
assert(NULL != user);
|
||||||
|
|
||||||
HGBase_EnterLock(m_lock);
|
HGBase_EnterLock(m_lock);
|
||||||
m_saneImageCallback = func;
|
std::list<class WSUser *>::iterator iter;
|
||||||
m_saneImageParam = param;
|
for (iter = m_user.begin(); iter != m_user.end(); ++iter)
|
||||||
HGBase_LeaveLock(m_lock);
|
{
|
||||||
|
if (*iter == user)
|
||||||
|
{
|
||||||
|
m_user.erase(iter);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ManagerV2::ResetSaneEvent()
|
|
||||||
{
|
|
||||||
HGBase_EnterLock(m_lock);
|
|
||||||
m_saneEvent = NULL;
|
|
||||||
m_saneParam = NULL;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ManagerV2::ResetSaneImageCallback()
|
|
||||||
{
|
|
||||||
HGBase_EnterLock(m_lock);
|
|
||||||
m_saneImageCallback = NULL;
|
|
||||||
m_saneImageParam = NULL;
|
|
||||||
HGBase_LeaveLock(m_lock);
|
HGBase_LeaveLock(m_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4044,8 +4030,11 @@ namespace ver_2
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
p->m_devNameList.push_back(sane_dev->name);
|
p->m_devNameList.push_back(sane_dev->name);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class WSUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_ARRIVE, sane_dev->name, false, p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
WSUser::SaneEvent(SANEEVENT_ARRIVE, sane_dev->name, false, *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4075,8 +4064,11 @@ namespace ver_2
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class WSUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_REMOVE, sane_dev->name, false, p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
WSUser::SaneEvent(SANEEVENT_REMOVE, sane_dev->name, false, *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4085,8 +4077,11 @@ namespace ver_2
|
||||||
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_WORKING, msg=%s", Utf8ToStdString((char*)data).c_str());
|
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_WORKING, msg=%s", Utf8ToStdString((char*)data).c_str());
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class WSUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_WORKING, (const char*)data, false, p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
WSUser::SaneEvent(SANEEVENT_WORKING, (const char*)data, false, *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4108,8 +4103,11 @@ namespace ver_2
|
||||||
}
|
}
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class WSUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_FINISH, (const char*)data, (0 != *len), p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
WSUser::SaneEvent(SANEEVENT_FINISH, (const char*)data, (0 != *len), *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4118,8 +4116,11 @@ namespace ver_2
|
||||||
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_STATUS, msg=%s", Utf8ToStdString((char*)data).c_str());
|
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_STATUS, msg=%s", Utf8ToStdString((char*)data).c_str());
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class WSUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_STATUS, (const char*)data, false, p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
WSUser::SaneEvent(SANEEVENT_STATUS, (const char*)data, false, *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4128,8 +4129,11 @@ namespace ver_2
|
||||||
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_ERROR, msg=%s", Utf8ToStdString((char*)data).c_str());
|
HGBase_WriteInfo(HGBASE_INFOTYPE_DESC, "SANE_EVENT_ERROR, msg=%s", Utf8ToStdString((char*)data).c_str());
|
||||||
|
|
||||||
HGBase_EnterLock(p->m_lock);
|
HGBase_EnterLock(p->m_lock);
|
||||||
if (NULL != p->m_saneEvent)
|
std::list<class WSUser *>::iterator iter;
|
||||||
p->m_saneEvent(SANEEVENT_ERROR, (const char*)data, (0 != *len), p->m_saneParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
WSUser::SaneEvent(SANEEVENT_ERROR, (const char*)data, (0 != *len), *iter);
|
||||||
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4182,8 +4186,11 @@ namespace ver_2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NULL != p->m_saneImageCallback)
|
std::list<class WSUser *>::iterator iter;
|
||||||
p->m_saneImageCallback(imagePath.c_str(), blank ? true : false, p->m_saneImageParam);
|
for (iter = p->m_user.begin(); iter != p->m_user.end(); ++iter)
|
||||||
|
{
|
||||||
|
WSUser::SaneImageCallback(imagePath.c_str(), blank ? true : false, *iter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
HGBase_LeaveLock(p->m_lock);
|
HGBase_LeaveLock(p->m_lock);
|
||||||
|
|
||||||
|
|
|
@ -111,9 +111,6 @@ namespace ver_2
|
||||||
std::string thumbBase64;
|
std::string thumbBase64;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef void (*SaneEvent)(int code, const char *str, bool err, void* param);
|
|
||||||
typedef void (*SaneImageCallback)(const char* path, bool blank, void* param);
|
|
||||||
|
|
||||||
class ManagerV2 : public Manager
|
class ManagerV2 : public Manager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -129,12 +126,8 @@ namespace ver_2
|
||||||
// 删除文件
|
// 删除文件
|
||||||
void RemoveSavedFile(const RemoveSavedFileParam* param);
|
void RemoveSavedFile(const RemoveSavedFileParam* param);
|
||||||
|
|
||||||
// 设置回调
|
void AddUser(class WSUser *user);
|
||||||
void SetSaneEvent(SaneEvent event, void* param);
|
void RemoveUser(class WSUser *user);
|
||||||
void SetSaneImageCallback(SaneImageCallback func, void* param);
|
|
||||||
// 清理回调
|
|
||||||
void ResetSaneEvent();
|
|
||||||
void ResetSaneImageCallback();
|
|
||||||
|
|
||||||
// 设置全局配置
|
// 设置全局配置
|
||||||
int SetGlobalConfig(const GlobalConfig& cfg, HGUInt mask, std::string &errInfo);
|
int SetGlobalConfig(const GlobalConfig& cfg, HGUInt mask, std::string &errInfo);
|
||||||
|
@ -304,10 +297,7 @@ namespace ver_2
|
||||||
private:
|
private:
|
||||||
HGLock m_lock;
|
HGLock m_lock;
|
||||||
GlobalConfig m_globalCfg;
|
GlobalConfig m_globalCfg;
|
||||||
SaneEvent m_saneEvent;
|
std::list<class WSUser *> m_user;
|
||||||
void* m_saneParam;
|
|
||||||
SaneImageCallback m_saneImageCallback;
|
|
||||||
void* m_saneImageParam;
|
|
||||||
|
|
||||||
bool m_initDevice;
|
bool m_initDevice;
|
||||||
std::vector<std::string> m_devNameList;
|
std::vector<std::string> m_devNameList;
|
||||||
|
|
|
@ -16,14 +16,12 @@ namespace ver_1
|
||||||
#endif
|
#endif
|
||||||
: WebUser(server, id, ip, port, sockConn)
|
: WebUser(server, id, ip, port, sockConn)
|
||||||
{
|
{
|
||||||
GetManager()->SetSaneEvent(SaneEvent2, this);
|
GetManager()->AddUser(this);
|
||||||
GetManager()->SetSaneImageCallback(SaneImageCallback2, this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SockIoUser::~SockIoUser()
|
SockIoUser::~SockIoUser()
|
||||||
{
|
{
|
||||||
GetManager()->ResetSaneImageCallback();
|
GetManager()->RemoveUser(this);
|
||||||
GetManager()->ResetSaneEvent();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ManagerV1* SockIoUser::GetManager()
|
ManagerV1* SockIoUser::GetManager()
|
||||||
|
@ -427,7 +425,7 @@ namespace ver_1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SockIoUser::SaneEvent2(int code, const char* str, bool err, void* param)
|
void SockIoUser::SaneEvent(int code, const char* str, bool err, void* param)
|
||||||
{
|
{
|
||||||
SockIoUser* p = (SockIoUser*)param;
|
SockIoUser* p = (SockIoUser*)param;
|
||||||
|
|
||||||
|
@ -464,7 +462,7 @@ namespace ver_1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SockIoUser::SaneImageCallback2(const char* name, const char* base64, void* param)
|
void SockIoUser::SaneImageCallback(const char* name, const char* base64, void* param)
|
||||||
{
|
{
|
||||||
SockIoUser* p = (SockIoUser*)param;
|
SockIoUser* p = (SockIoUser*)param;
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,10 @@ namespace ver_1
|
||||||
void PostEventMsg(const HGByte* data, HGUInt dataSize);
|
void PostEventMsg(const HGByte* data, HGUInt dataSize);
|
||||||
virtual void ThreadFunc();
|
virtual void ThreadFunc();
|
||||||
|
|
||||||
|
public:
|
||||||
|
static void SaneEvent(int code, const char* str, bool err, void* param);
|
||||||
|
static void SaneImageCallback(const char* name, const char *base64, void* param);
|
||||||
private:
|
private:
|
||||||
static void SaneEvent2(int code, const char* str, bool err, void* param);
|
|
||||||
static void SaneImageCallback2(const char* name, const char *base64, void* param);
|
|
||||||
static void GetMsgInfo(const SockIoCmdParam* param, std::string& user, std::string& data);
|
static void GetMsgInfo(const SockIoCmdParam* param, std::string& user, std::string& data);
|
||||||
bool ShakeHand(const std::string& head);
|
bool ShakeHand(const std::string& head);
|
||||||
void Pong();
|
void Pong();
|
||||||
|
|
|
@ -202,16 +202,12 @@ namespace ver_2
|
||||||
m_startScanIsLocalSave = true;
|
m_startScanIsLocalSave = true;
|
||||||
m_startScanIsGetBase64 = false;
|
m_startScanIsGetBase64 = false;
|
||||||
|
|
||||||
GetManager()->SetSaneEvent(SaneEvent2, this);
|
GetManager()->AddUser(this);
|
||||||
GetManager()->SetSaneImageCallback(SaneImageCallback2, this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WSUser::~WSUser()
|
WSUser::~WSUser()
|
||||||
{
|
{
|
||||||
std::string errInfo;
|
GetManager()->RemoveUser(this);
|
||||||
GetManager()->DeinitDevice(errInfo);
|
|
||||||
GetManager()->ResetSaneImageCallback();
|
|
||||||
GetManager()->ResetSaneEvent();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ManagerV2* WSUser::GetManager()
|
ManagerV2* WSUser::GetManager()
|
||||||
|
@ -769,7 +765,7 @@ namespace ver_2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WSUser::SaneEvent2(int code, const char* str, bool err, void* param)
|
void WSUser::SaneEvent(int code, const char* str, bool err, void* param)
|
||||||
{
|
{
|
||||||
WSUser* p = (WSUser*)param;
|
WSUser* p = (WSUser*)param;
|
||||||
|
|
||||||
|
@ -897,7 +893,7 @@ namespace ver_2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WSUser::SaneImageCallback2(const char* path, bool blank, void* param)
|
void WSUser::SaneImageCallback(const char* path, bool blank, void* param)
|
||||||
{
|
{
|
||||||
WSUser* p = (WSUser*)param;
|
WSUser* p = (WSUser*)param;
|
||||||
|
|
||||||
|
|
|
@ -25,9 +25,10 @@ namespace ver_2
|
||||||
void PostEventMsg(const HGByte* data, HGUInt dataSize);
|
void PostEventMsg(const HGByte* data, HGUInt dataSize);
|
||||||
virtual void ThreadFunc();
|
virtual void ThreadFunc();
|
||||||
|
|
||||||
|
public:
|
||||||
|
static void SaneEvent(int code, const char* str, bool err, void* param);
|
||||||
|
static void SaneImageCallback(const char* path, bool blank, void* param);
|
||||||
private:
|
private:
|
||||||
static void SaneEvent2(int code, const char* str, bool err, void* param);
|
|
||||||
static void SaneImageCallback2(const char* path, bool blank, void* param);
|
|
||||||
bool ShakeHand(const std::string& head);
|
bool ShakeHand(const std::string& head);
|
||||||
void Pong();
|
void Pong();
|
||||||
bool SendResponse(const HGByte* data, HGUInt size, HGBool text);
|
bool SendResponse(const HGByte* data, HGUInt size, HGBool text);
|
||||||
|
|
Loading…
Reference in New Issue