#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, HGChar* errInfo, HGUInt errInfoLen) { if (NULL == mgr) { return HGBASE_ERR_INVALIDARG; } HGSaneManagerImpl* saneManagerImpl = (HGSaneManagerImpl*)mgr; 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; } 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; } HGResult HGAPI HGSane_CloseDevice(HGSaneDevice dev) { if (NULL == dev) { return HGBASE_ERR_INVALIDARG; } HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev; return saneDeviceImpl->Close(); } HGResult HGAPI HGSane_ShowDeviceSettingDlg(HGSaneDevice dev, HGWindow parent) { if (NULL == dev) { return HGBASE_ERR_INVALIDARG; } HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev; return saneDeviceImpl->ShowSettingDlg(parent); } HGResult HGAPI HGSane_StartDevice(HGSaneDevice dev, HGSane_DeviceEventFunc eventFunc, HGPointer eventParam, HGSane_DeviceImageFunc imageFunc, HGPointer imageParam, HGChar* errInfo, HGUInt errInfoLen) { if (NULL == dev) { return HGBASE_ERR_INVALIDARG; } HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev; return saneDeviceImpl->Start(eventFunc, eventParam, imageFunc, imageParam, errInfo, errInfoLen); } HGResult HGAPI HGSane_StopDevice(HGSaneDevice dev) { if (NULL == dev) { return HGBASE_ERR_INVALIDARG; } 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); }