2022-05-03 10:25:52 +00:00
|
|
|
|
#include "HGSane.h"
|
|
|
|
|
#include "HGSaneImpl.hpp"
|
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_CreateManager(HGSaneManager *manager)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == manager)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl *managerImpl = new HGSaneManagerImpl;
|
|
|
|
|
HGResult ret = managerImpl->Create();
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
delete managerImpl;
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*manager = (HGSaneManager)managerImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_DestroyManager(HGSaneManager manager)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == manager)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl *managerImpl = (HGSaneManagerImpl*)manager;
|
|
|
|
|
HGResult ret = managerImpl->Destroy();
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
delete managerImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_GetSourceCount(HGSaneManager manager, HGUInt *count)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == manager)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGSaneManagerImpl *managerImpl = (HGSaneManagerImpl*)manager;
|
|
|
|
|
return managerImpl->GetSourceCount(count);
|
|
|
|
|
}
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_GetSourceNameWithIndex(HGSaneManager manager, HGUInt index, HGChar *name, HGUInt maxLen)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == manager)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl *managerImpl = (HGSaneManagerImpl*)manager;
|
|
|
|
|
return managerImpl->GetSourceName(index, name, maxLen);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_OpenSource(HGSaneManager manager, HGUInt index, HGSaneSource* source)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == manager)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl *managerImpl = (HGSaneManagerImpl*)manager;
|
|
|
|
|
HGSaneSourceImpl *sourceImpl = NULL;
|
|
|
|
|
HGResult ret = managerImpl->OpenSource(index, &sourceImpl);
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*source = (HGSaneSource)sourceImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
2023-06-03 09:25:56 +00:00
|
|
|
|
HGResult HGAPI HGSane_OpenDefaultSource(HGSaneManager manager, HGSaneSource* source)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == manager)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl *managerImpl = (HGSaneManagerImpl*)manager;
|
|
|
|
|
HGSaneSourceImpl *sourceImpl = NULL;
|
|
|
|
|
HGResult ret = managerImpl->OpenDefaultSource(&sourceImpl);
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*source = (HGSaneSource)sourceImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_OpenSelectedSource(HGSaneManager manager, HGWindow parent, HGSaneSource* source)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == manager)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl *managerImpl = (HGSaneManagerImpl*)manager;
|
|
|
|
|
HGSaneSourceImpl *sourceImpl = NULL;
|
|
|
|
|
HGResult ret = managerImpl->OpenSelectedSource(parent, &sourceImpl);
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*source = (HGSaneSource)sourceImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_CloseSource(HGSaneSource source)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == source)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
|
|
|
|
|
return saneSourceImpl->Close();
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_GetSourceName(HGSaneSource source, HGChar *name, HGUInt maxLen)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == source)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
|
|
|
|
|
return saneSourceImpl->GetName(name, maxLen);
|
|
|
|
|
}
|
2023-03-25 07:31:09 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_GetDeviceCount(HGSaneSource source, HGUInt* count)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == source)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
|
|
|
|
|
return saneSourceImpl->GetDeviceCount(count);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_GetDeviceNameWithIndex(HGSaneSource source, HGUInt index, HGChar* name, HGUInt maxLen)
|
2023-03-28 09:29:47 +00:00
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == source)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
|
|
|
|
|
return saneSourceImpl->GetDeviceName(index, name, maxLen);
|
|
|
|
|
}
|
2023-03-28 09:29:47 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_OpenDevice(HGSaneSource source, HGUInt index, HGSaneDevice* dev, HGChar* errInfo, HGUInt errInfoLen)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == source)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
|
|
|
|
|
class HGSaneDeviceImpl* saneDeviceImpl = NULL;
|
|
|
|
|
HGResult ret = saneSourceImpl->OpenDevice(index, &saneDeviceImpl, errInfo, errInfoLen);
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*dev = (HGSaneDevice)saneDeviceImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
2023-03-28 09:29:47 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGResult HGAPI HGSane_OpenSelectedDevice(HGSaneSource source, HGWindow parent, HGSaneDevice* dev)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == source)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
|
|
|
|
|
class HGSaneDeviceImpl* saneDeviceImpl = NULL;
|
|
|
|
|
HGResult ret = saneSourceImpl->OpenSelectedDevice(parent, &saneDeviceImpl);
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*dev = (HGSaneDevice)saneDeviceImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
2023-03-28 09:29:47 +00:00
|
|
|
|
}
|
|
|
|
|
|
2022-05-03 10:25:52 +00:00
|
|
|
|
HGResult HGAPI HGSane_CloseDevice(HGSaneDevice dev)
|
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->Close();
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-03-29 08:16:19 +00:00
|
|
|
|
HGResult HGAPI HGSane_GetDeviceName(HGSaneDevice dev, HGChar* name, HGUInt maxLen)
|
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
2023-03-29 08:16:19 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->GetName(name, maxLen);
|
2023-03-29 08:16:19 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-05-16 02:22:33 +00:00
|
|
|
|
HGResult HGAPI HGSane_GetDeviceCustomInfo(HGSaneDevice dev, HGSaneDeviceCustomInfo *info)
|
2023-04-07 06:18:56 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->GetCustomInfo(info);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-28 09:29:47 +00:00
|
|
|
|
HGResult HGAPI HGSane_ShowDeviceSettingDlg(HGSaneDevice dev, HGWindow parent)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
2022-05-03 10:25:52 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->ShowSettingDlg(parent);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-05-16 02:22:33 +00:00
|
|
|
|
HGResult HGAPI HGSane_Login(HGSaneDevice dev, const HGChar *user, const HGChar *pwd)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->Login(user, pwd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGSane_Logout(HGSaneDevice dev)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->Logout();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGSane_ClearRollerCount(HGSaneDevice dev)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->ClearRollerCount();
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-20 10:06:05 +00:00
|
|
|
|
HGResult HGAPI HGSane_GetDriverLog(HGSaneDevice dev, const HGChar *fileName)
|
2023-05-16 02:22:33 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
2023-05-20 10:06:05 +00:00
|
|
|
|
return saneDeviceImpl->GetDriverLog(fileName);
|
2023-05-16 02:22:33 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGSane_ClearDriverLog(HGSaneDevice dev)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->ClearDriverLog();
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-20 10:06:05 +00:00
|
|
|
|
HGResult HGAPI HGSane_GetDeviceLog(HGSaneDevice dev, const HGChar *fileName)
|
2023-05-16 02:22:33 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
2023-05-20 10:06:05 +00:00
|
|
|
|
return saneDeviceImpl->GetDeviceLog(fileName);
|
2023-05-16 02:22:33 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGSane_ClearDeviceLog(HGSaneDevice dev)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->ClearDeviceLog();
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-23 06:52:45 +00:00
|
|
|
|
HGResult HGAPI HGSane_StartDevice(HGSaneDevice dev, HGWindow parent, HGSane_DeviceEventFunc eventFunc, HGPointer eventParam,
|
|
|
|
|
HGSane_DeviceImageFunc imageFunc, HGPointer imageParam)
|
2023-03-28 09:29:47 +00:00
|
|
|
|
{
|
2023-04-03 09:13:53 +00:00
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
2023-03-28 09:29:47 +00:00
|
|
|
|
|
2023-04-03 09:13:53 +00:00
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
2023-05-23 06:37:34 +00:00
|
|
|
|
return saneDeviceImpl->Start(parent, eventFunc, eventParam, imageFunc, imageParam);
|
2023-04-03 09:13:53 +00:00
|
|
|
|
}
|
2023-05-16 02:22:33 +00:00
|
|
|
|
|
2023-05-23 06:52:45 +00:00
|
|
|
|
HGResult HGAPI HGSane_StartDeviceWithSingleScan(HGSaneDevice dev, HGWindow parent, HGSane_DeviceEventFunc eventFunc, HGPointer eventParam,
|
|
|
|
|
HGSane_DeviceImageFunc imageFunc, HGPointer imageParam)
|
2023-05-16 02:22:33 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
2023-05-23 06:37:34 +00:00
|
|
|
|
return saneDeviceImpl->StartWithSingleScan(parent, eventFunc, eventParam, imageFunc, imageParam);
|
2023-05-16 02:22:33 +00:00
|
|
|
|
}
|