scannerlib,将扫描事件回调中的err改为错误码

This commit is contained in:
luoliangyi 2024-01-05 11:52:32 +08:00
parent 3e19c3a737
commit 90a691e424
4 changed files with 79 additions and 20 deletions

View File

@ -1270,9 +1270,9 @@ int HGLibDeviceImpl::sane_ex_callback(SANE_Handle hdev, int code, void* data, un
if (NULL != deviceImpl->m_eventFunc) if (NULL != deviceImpl->m_eventFunc)
{ {
deviceImpl->m_eventFunc((HGLibDevice)deviceImpl, HGLIB_DEVSCAN_EVENT_BEGIN, deviceImpl->m_eventFunc((HGLibDevice)deviceImpl, HGLIB_DEVSCAN_EVENT_BEGIN,
HGFALSE, NULL, deviceImpl->m_eventParam); 0, NULL, deviceImpl->m_eventParam);
deviceImpl->m_eventFunc((HGLibDevice)deviceImpl, HGLIB_DEVSCAN_EVENT_INFO, deviceImpl->m_eventFunc((HGLibDevice)deviceImpl, HGLIB_DEVSCAN_EVENT_INFO,
HGFALSE, (const char*)data, deviceImpl->m_eventParam); 0, (const char*)data, deviceImpl->m_eventParam);
} }
} }
break; break;
@ -1284,13 +1284,13 @@ int HGLibDeviceImpl::sane_ex_callback(SANE_Handle hdev, int code, void* data, un
if (NULL != deviceImpl->m_eventFunc) if (NULL != deviceImpl->m_eventFunc)
{ {
deviceImpl->m_eventFunc((HGLibDevice)deviceImpl, HGLIB_DEVSCAN_EVENT_INFO, deviceImpl->m_eventFunc((HGLibDevice)deviceImpl, HGLIB_DEVSCAN_EVENT_INFO,
(0 != *len), (const char*)data, deviceImpl->m_eventParam); (HGInt)(*len), (const char*)data, deviceImpl->m_eventParam);
} }
if (NULL != deviceImpl->m_eventFunc) if (NULL != deviceImpl->m_eventFunc)
{ {
deviceImpl->m_eventFunc((HGLibDevice)deviceImpl, HGLIB_DEVSCAN_EVENT_END, deviceImpl->m_eventFunc((HGLibDevice)deviceImpl, HGLIB_DEVSCAN_EVENT_END,
HGFALSE, NULL, deviceImpl->m_eventParam); 0, NULL, deviceImpl->m_eventParam);
} }
HGBase_EnterLock(deviceImpl->m_lock); HGBase_EnterLock(deviceImpl->m_lock);

View File

@ -29,19 +29,78 @@ HG_DECLARE_HANDLE(HGLibDevice);
#define HGLIB_TIFFCOMPRESSION_LZW 3L #define HGLIB_TIFFCOMPRESSION_LZW 3L
#define HGLIB_TIFFCOMPRESSION_JPEG 4L #define HGLIB_TIFFCOMPRESSION_JPEG 4L
/* 设备操作码 */ /* 设备错误码 */
#define HGLIB_DEV_OPERATECODE_GOOD 0L #define HGLIB_DEV_OPERATECODE_GOOD 0L /* everything A-OK */
#define HGLIB_DEV_OPERATECODE_UNSUPPORTED 1L #define HGLIB_DEV_OPERATECODE_UNSUPPORTED 1L /* operation is not supported */
#define HGLIB_DEV_OPERATECODE_CANCELLED 2L #define HGLIB_DEV_OPERATECODE_CANCELLED 2L /* operation was cancelled */
#define HGLIB_DEV_OPERATECODE_BUSY 3L #define HGLIB_DEV_OPERATECODE_BUSY 3L /* device is busy; try again later */
#define HGLIB_DEV_OPERATECODE_INVAL 4L #define HGLIB_DEV_OPERATECODE_INVAL 4L /* data is invalid (includes no dev at open) */
#define HGLIB_DEV_OPERATECODE_EOF 5L #define HGLIB_DEV_OPERATECODE_EOF 5L /* no more data available (end-of-file) */
#define HGLIB_DEV_OPERATECODE_JAMMED 6L #define HGLIB_DEV_OPERATECODE_JAMMED 6L /* document feeder jammed */
#define HGLIB_DEV_OPERATECODE_NO_DOCS 7L #define HGLIB_DEV_OPERATECODE_NO_DOCS 7L /* document feeder out of documents */
#define HGLIB_DEV_OPERATECODE_COVER_OPEN 8L #define HGLIB_DEV_OPERATECODE_COVER_OPEN 8L /* scanner cover is open */
#define HGLIB_DEV_OPERATECODE_IO_ERROR 9L #define HGLIB_DEV_OPERATECODE_IO_ERROR 9L /* error during device I/O */
#define HGLIB_DEV_OPERATECODE_NO_MEM 10L #define HGLIB_DEV_OPERATECODE_NO_MEM 10L /* out of memory */
#define HGLIB_DEV_OPERATECODE_ACCESS_DENIED 11L #define HGLIB_DEV_OPERATECODE_ACCESS_DENIED 11L /* access to resource has been denied */
// 1软件逻辑错误
#define HGLIB_DEV_OPERATECODE_INVALID_PARAMETER 0x100 // 非法的参数调用
#define HGLIB_DEV_OPERATECODE_ERR_USER_CANCELED 0x101 // 用户取消了操作
#define HGLIB_DEV_OPERATECODE_INSUFFICIENT_MEMORY 0x102 // 分配的内存不足
#define HGLIB_DEV_OPERATECODE_ACCESS_DENIED 0x103 // 访问被拒绝
#define HGLIB_DEV_OPERATECODE_IO_PENDING 0x104 // 异步访问,数据稍后返回
#define HGLIB_DEV_OPERATECODE_ERR_NOT_EXACT 0x105 // 数据不精确,精确的数据已经在同一缓存中返回
#define HGLIB_DEV_OPERATECODE_ERR_CONFIGURATION_CHANGED 0x106 // 设备的配置项发生改变,需要重新加载显示
#define HGLIB_DEV_OPERATECODE_ERR_NOT_OPEN 0x107 // 设备未打开
#define HGLIB_DEV_OPERATECODE_ERR_NOT_START 0x108 // 设备没有启动
#define HGLIB_DEV_OPERATECODE_ERR_NOT_ANY_MORE 0x109 // 用于回调返回,在本次扫描中,对相同操作不再回调
#define HGLIB_DEV_OPERATECODE_ERR_NO_DATA 0x10A // 没有数据
#define HGLIB_DEV_OPERATECODE_HAS_DATA_YET 0x10B // 有数据未被读取(异步操作中)
#define HGLIB_DEV_OPERATECODE_OUT_OF_RANGE 0x10C // 相关操作超出范围
#define HGLIB_DEV_OPERATECODE_IO 0x10D // IO错误
#define HGLIB_DEV_OPERATECODE_TIMEOUT 0x10E // 超时错误
#define HGLIB_DEV_OPERATECODE_OPEN_FILE_FAILED 0x10F // 打开本地文件失败
#define HGLIB_DEV_OPERATECODE_CREATE_FILE_FAILED 0x110 // 创建本地文件失败
#define HGLIB_DEV_OPERATECODE_WRITE_FILE_FAILED 0x111 // 写本地文件失败
#define HGLIB_DEV_OPERATECODE_DATA_DAMAGED 0x112 // 数据损坏(内置资源数据损坏)
#define HGLIB_DEV_OPERATECODE_OPENED_BY_OTHER_PROCESS 0x113 // 设备已经被其它进程打开占用
#define HGLIB_DEV_OPERATECODE_LANG_PAK_LOST 0x114 // 语言包丢失
#define HGLIB_DEV_OPERATECODE_RELOAD_IMAGE_PARAM 0x115 // 配置成功,会影响图像参数,应用需要重新加载图像参数 - added on 2023-02-18 for XSANE修改影响图像参数的属性后扫描崩溃的问题
#define HGLIB_DEV_OPERATECODE_RELOAD_OPT_PARAM 0x116 // SCANNER_ERR_CONFIGURATION_CHANGED + SCANNER_ERR_RELOAD_IMAGE_PARAM - added on 2023-02-18 for XSANE修改影响图像参数的属性后扫描崩溃的问题
#define HGLIB_DEV_OPERATECODE_IMAGE_PROC_FATAL 0x117 // 图像处理失败
// 2USB错误
#define HGLIB_DEV_OPERATECODE_USB_INIT_FAILED 0x5B00 // libusb_init 失败
#define HGLIB_DEV_OPERATECODE_USB_REGISTER_PNP_FAILED 0x5B01 // 注册USB监听事件失败
#define HGLIB_DEV_OPERATECODE_USB_CLAIM_INTERFACE_FAILED 0x5B02 // failed in calling libusb_claim_interface
// 3硬件错误
#define HGLIB_DEV_OPERATECODE_DEVICE_NOT_FOUND 0x0DE00 // 设备未找到
#define HGLIB_DEV_OPERATECODE_DEVICE_NOT_SUPPORT 0x0DE01 // 设备不支持该操作
#define HGLIB_DEV_OPERATECODE_DEVICE_BUSY 0x0DE02 // 设备正忙,不能响应该操作
#define HGLIB_DEV_OPERATECODE_DEVICE_SLEEPING 0x0DE03 // 设备处于睡眠状态
#define HGLIB_DEV_OPERATECODE_DEVICE_COUNT_MODE 0x0DE04 // 设备处于计数扫描状态?
#define HGLIB_DEV_OPERATECODE_DEVICE_STOPPED 0x0DE05 // 扫描停止
#define HGLIB_DEV_OPERATECODE_DEVICE_COVER_OPENNED 0x0DE06 // 扫描仪盖板呈打开状态
#define HGLIB_DEV_OPERATECODE_DEVICE_NO_PAPER 0x0DE07 // 没有纸张输入
#define HGLIB_DEV_OPERATECODE_DEVICE_FEEDING_PAPER 0x0DE08 // 搓纸失败
#define HGLIB_DEV_OPERATECODE_DEVICE_DOUBLE_FEEDING 0x0DE09 // 双张检测
#define HGLIB_DEV_OPERATECODE_DEVICE_PAPER_JAMMED 0x0DE0A // 卡纸
#define HGLIB_DEV_OPERATECODE_DEVICE_STAPLE_ON 0x0DE0B // 有钉书钉
#define HGLIB_DEV_OPERATECODE_DEVICE_PAPER_SKEW 0x0DE0C // 纸张倾斜
#define HGLIB_DEV_OPERATECODE_DEVICE_SIZE_CHECK 0x0DE0D // 尺寸检测错误
#define HGLIB_DEV_OPERATECODE_DEVICE_DOGEAR 0x0DE0E // 纸张有折角
#define HGLIB_DEV_OPERATECODE_DEVICE_NO_IMAGE 0x0DE0F // 设备没取到图
#define HGLIB_DEV_OPERATECODE_DEVICE_SCANN_ERROR 0x0DE10 // 设备扫图失败
#define HGLIB_DEV_OPERATECODE_DEVICE_PC_BUSY 0x0DE11 // PC繁忙或出错
#define HGLIB_DEV_OPERATECODE_DEVICE_ISLOCK 0x0DE12 // 设备被锁定
#define HGLIB_DEV_OPERATECODE_DEVICE_UPGRADE_SUCCESSFUL 0x0DE13 // 固件升级成功
#define HGLIB_DEV_OPERATECODE_DEVICE_UPGRADE_FAIL 0x0DE14 // 固件升级失败+
#define HGLIB_DEV_OPERATECODE_DEVICE_AUTO_FAIL_OVER 0x0DE15 // 设备平场自动校正结束
#define HGLIB_DEV_OPERATECODE_DEVICE_AUTO_FAIL_INFO 0x0DE16 // 设备平场自动校正信息传输
#define HGLIB_DEV_OPERATECODE_DEVICE_DISTORTION 0x0DE17 // 畸变修正失败
#define HGLIB_DEV_OPERATECODE_DEVICE_MAYBE_IS_HOLE 0x0DE18 // 纸张有孔洞
#define HGLIB_DEV_OPERATECODE_DEVICE_DEVS_BOOTING 0x0DE19 // 请稍等 - 设备正在准备
#define HGLIB_DEV_OPERATECODE_DEVICE_UNKNOWN_STATUS 0x0DE1A // 设备处于未知状态
#define HGLIB_DEV_OPERATECODE_DEVICE_LENS_DIRTY 0x0DE1B // 镜头脏污
/* 设备热拔插事件 */ /* 设备热拔插事件 */
#define HGLIB_DEVHOTPLUG_EVENT_ARRIVE 1L #define HGLIB_DEVHOTPLUG_EVENT_ARRIVE 1L
@ -508,11 +567,11 @@ typedef void (HGAPI *HGLibDeviceHotPlugEventFunc)(HGUInt event, const HGChar *de
/* 设备扫描事件回调 /* 设备扫描事件回调
* device: * device:
* event: HGLIB_DEVSCAN_EVENT_* * event: HGLIB_DEVSCAN_EVENT_*
* err: , HGLIB_DEVSCAN_EVENT_INFO下有效 * operateCode: , HGLIB_DEVSCAN_EVENT_INFO下有效
* info: , HGLIB_DEVSCAN_EVENT_INFO下有效 * info: , HGLIB_DEVSCAN_EVENT_INFO下有效
* param: * param:
*/ */
typedef void (HGAPI *HGLibDeviceScanEventFunc)(HGLibDevice device, HGUInt event, HGBool err, const HGChar *info, HGPointer param); typedef void (HGAPI *HGLibDeviceScanEventFunc)(HGLibDevice device, HGUInt event, HGInt operateCode, const HGChar *info, HGPointer param);
/* 设备扫描图像回调 /* 设备扫描图像回调
* device: * device:
@ -623,7 +682,7 @@ HGEXPORT HGBool HGAPI HGLib_StopDeviceScan(HGLibDevice device);
/* 停止扫描-异步 */ /* 停止扫描-异步 */
HGEXPORT HGBool HGAPI HGLib_StopDeviceScanAsyn(HGLibDevice device); HGEXPORT HGBool HGAPI HGLib_StopDeviceScanAsyn(HGLibDevice device);
/* 获取设备操作码(在调用设备操作函数以后) */ /* 获取设备错误码(在调用设备操作函数以后) */
HGEXPORT HGInt HGAPI HGLib_GetDeviceOperateCode(HGLibDevice device); HGEXPORT HGInt HGAPI HGLib_GetDeviceOperateCode(HGLibDevice device);
#endif /* __HGSCANNERLIB_H__ */ #endif /* __HGSCANNERLIB_H__ */