code_app/modules/sane_user/HGSane.cpp

260 lines
6.4 KiB
C++
Raw Normal View History

2022-05-03 10:25:52 +00:00
#include "HGSane.h"
#include "HGSaneImpl.hpp"
HGResult HGAPI HGSane_CreateManager(HGSaneManager *manager)
2022-05-03 10:25:52 +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
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
}
HGResult HGAPI HGSane_GetSourceCount(HGSaneManager manager, HGUInt *count)
2022-05-03 10:25:52 +00:00
{
if (NULL == manager)
{
return HGBASE_ERR_INVALIDARG;
}
2022-05-03 10:25:52 +00:00
HGSaneManagerImpl *managerImpl = (HGSaneManagerImpl*)manager;
return managerImpl->GetSourceCount(count);
}
2022-05-03 10:25:52 +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
}
HGResult HGAPI HGSane_OpenSource(HGSaneManager manager, HGUInt index, HGSaneSource* source)
2022-05-03 10:25:52 +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
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
}
HGResult HGAPI HGSane_CloseSource(HGSaneSource source)
2022-05-03 10:25:52 +00:00
{
if (NULL == source)
{
return HGBASE_ERR_INVALIDARG;
}
2022-05-03 10:25:52 +00:00
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
return saneSourceImpl->Close();
2022-05-03 10:25:52 +00:00
}
HGResult HGAPI HGSane_GetSourceName(HGSaneSource source, HGChar *name, HGUInt maxLen)
2022-05-03 10:25:52 +00:00
{
if (NULL == source)
{
return HGBASE_ERR_INVALIDARG;
}
2022-05-03 10:25:52 +00:00
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
return saneSourceImpl->GetName(name, maxLen);
}
2023-03-25 07:31:09 +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
}
HGResult HGAPI HGSane_GetDeviceNameWithIndex(HGSaneSource source, HGUInt index, HGChar* name, HGUInt maxLen)
{
if (NULL == source)
{
return HGBASE_ERR_INVALIDARG;
}
HGSaneSourceImpl* saneSourceImpl = (HGSaneSourceImpl*)source;
return saneSourceImpl->GetDeviceName(index, name, maxLen);
}
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;
}
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;
}
2022-05-03 10:25:52 +00:00
HGResult HGAPI HGSane_CloseDevice(HGSaneDevice dev)
{
if (NULL == dev)
{
return HGBASE_ERR_INVALIDARG;
}
2022-05-03 10:25:52 +00:00
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
return saneDeviceImpl->Close();
2022-05-03 10:25:52 +00:00
}
HGResult HGAPI HGSane_GetDeviceName(HGSaneDevice dev, HGChar* name, HGUInt maxLen)
{
if (NULL == dev)
{
return HGBASE_ERR_INVALIDARG;
}
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
return saneDeviceImpl->GetName(name, maxLen);
}
HGResult HGAPI HGSane_GetDeviceCustomInfo(HGSaneDevice dev, HGSaneCustomInfo *info)
{
if (NULL == dev)
{
return HGBASE_ERR_INVALIDARG;
}
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
return saneDeviceImpl->GetCustomInfo(info);
}
HGResult HGAPI HGSane_ShowDeviceSettingDlg(HGSaneDevice dev, HGWindow parent)
2022-05-03 10:25:52 +00:00
{
if (NULL == dev)
{
return HGBASE_ERR_INVALIDARG;
}
2022-05-03 10:25:52 +00:00
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
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;
}
2022-05-03 10:25:52 +00:00
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
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;
}
2022-05-03 10:25:52 +00:00
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
return saneDeviceImpl->Stop();
}
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);
}