2022-05-03 10:25:52 +00:00
|
|
|
|
#include "HGSane.h"
|
|
|
|
|
#include "HGSaneImpl.hpp"
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGSane_CreateManager(const HGChar* sanePath, HGSaneManager* mgr)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == mgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl *saneManagerImpl = new HGSaneManagerImpl;
|
|
|
|
|
HGResult ret = saneManagerImpl->Create(sanePath);
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
delete saneManagerImpl;
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*mgr = (HGSaneManager)saneManagerImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGSane_DestroyManager(HGSaneManager mgr)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == mgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl* saneManagerImpl = (HGSaneManagerImpl*)mgr;
|
|
|
|
|
HGResult ret = saneManagerImpl->Destroy();
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
delete saneManagerImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGSane_GetDeviceCount(HGSaneManager mgr, HGUInt* count)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == mgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl* saneManagerImpl = (HGSaneManagerImpl*)mgr;
|
|
|
|
|
return saneManagerImpl->GetDeviceCount(count);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGSane_GetDeviceName(HGSaneManager mgr, HGUInt index, HGChar* name, HGUInt maxLen)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == mgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl* saneManagerImpl = (HGSaneManagerImpl*)mgr;
|
|
|
|
|
return saneManagerImpl->GetDeviceName(index, name, maxLen);
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-25 07:31:09 +00:00
|
|
|
|
HGResult HGAPI HGSane_OpenDevice(HGSaneManager mgr, HGUInt index, HGSaneDevice* dev, HGChar* errInfo, HGUInt errInfoLen)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == mgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl* saneManagerImpl = (HGSaneManagerImpl*)mgr;
|
2023-03-25 07:31:09 +00:00
|
|
|
|
class HGSaneDeviceImpl* saneDeviceImpl = NULL;
|
|
|
|
|
HGResult ret = saneManagerImpl->OpenDevice(index, &saneDeviceImpl, errInfo, errInfoLen);
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*dev = (HGSaneDevice)saneDeviceImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-03-28 09:29:47 +00:00
|
|
|
|
HGResult HGAPI HGSane_OpenSelectedDevice(HGSaneManager mgr, HGWindow parent, HGSaneDevice* dev)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == mgr)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneManagerImpl* saneManagerImpl = (HGSaneManagerImpl*)mgr;
|
|
|
|
|
class HGSaneDeviceImpl* saneDeviceImpl = NULL;
|
|
|
|
|
HGResult ret = saneManagerImpl->OpenSelectedDevice(parent, &saneDeviceImpl);
|
|
|
|
|
if (HGBASE_ERR_OK != ret)
|
|
|
|
|
{
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
*dev = (HGSaneDevice)saneDeviceImpl;
|
|
|
|
|
return HGBASE_ERR_OK;
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-03 10:25:52 +00:00
|
|
|
|
HGResult HGAPI HGSane_CloseDevice(HGSaneDevice dev)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
2023-03-25 07:31:09 +00:00
|
|
|
|
return saneDeviceImpl->Close();
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-03-28 09:29:47 +00:00
|
|
|
|
HGResult HGAPI HGSane_ShowDeviceSettingDlg(HGSaneDevice dev, HGWindow parent)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
2023-03-28 07:39:10 +00:00
|
|
|
|
return saneDeviceImpl->ShowSettingDlg(parent);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-03-25 10:03:47 +00:00
|
|
|
|
HGResult HGAPI HGSane_StartDevice(HGSaneDevice dev, HGSane_DeviceEventFunc eventFunc, HGPointer eventParam,
|
|
|
|
|
HGSane_DeviceImageFunc imageFunc, HGPointer imageParam, HGChar* errInfo, HGUInt errInfoLen)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
2023-03-25 07:31:09 +00:00
|
|
|
|
return saneDeviceImpl->Start(eventFunc, eventParam, imageFunc, imageParam, errInfo, errInfoLen);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|
|
|
|
|
|
2023-03-25 07:31:09 +00:00
|
|
|
|
HGResult HGAPI HGSane_StopDevice(HGSaneDevice dev)
|
2022-05-03 10:25:52 +00:00
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
2023-03-25 07:31:09 +00:00
|
|
|
|
return saneDeviceImpl->Stop();
|
2023-03-28 09:29:47 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGResult HGAPI HGSane_StartDeviceWithUI(HGSaneDevice dev, HGWindow parent, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam)
|
|
|
|
|
{
|
|
|
|
|
if (NULL == dev)
|
|
|
|
|
{
|
|
|
|
|
return HGBASE_ERR_INVALIDARG;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
|
|
|
|
|
return saneDeviceImpl->StartWithUI(parent, imageFunc, imageParam);
|
2022-05-03 10:25:52 +00:00
|
|
|
|
}
|