#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); } HGResult HGAPI HGSane_OpenDevice(HGSaneManager mgr, HGUInt index, HGSaneDevice* dev) { if (NULL == mgr) { return HGBASE_ERR_INVALIDARG; } HGSaneManagerImpl* saneManagerImpl = (HGSaneManagerImpl*)mgr; return saneManagerImpl->OpenDevice(index, (HGSaneDeviceImpl**)dev); } HGResult HGAPI HGSane_CloseDevice(HGSaneDevice dev) { if (NULL == dev) { return HGBASE_ERR_INVALIDARG; } HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev; return saneDeviceImpl->mgrImpl->CloseDevice(saneDeviceImpl); } HGResult HGAPI HGSane_StartDevice(HGSaneDevice dev, HGSane_DeviceEventCallback func, HGPointer param) { if (NULL == dev) { return HGBASE_ERR_INVALIDARG; } HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev; return saneDeviceImpl->mgrImpl->StartDevice(saneDeviceImpl, func, param); } HGResult HGAPI HGSane_StopDevice(HGSaneDevice dev) { if (NULL == dev) { return HGBASE_ERR_INVALIDARG; } HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev; return saneDeviceImpl->mgrImpl->StopDevice(saneDeviceImpl); } HGResult HGAPI HGSane_GetImage(HGSaneDevice dev, HGUInt type, HGUInt origin, HGImage* image) { if (NULL == dev) { return HGBASE_ERR_INVALIDARG; } HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev; return saneDeviceImpl->mgrImpl->GetImage(saneDeviceImpl, type, origin, image); }