code_app/modules/sane_user/HGSane.cpp

125 lines
2.8 KiB
C++
Raw Normal View History

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
}
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-25 07:31:09 +00:00
HGResult HGAPI HGSane_GetDeviceHandle(HGSaneDevice dev, SANE_Handle* handle)
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->GetHandle(handle);
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();
2022-05-03 10:25:52 +00:00
}