code_app/sdk/scannerlib/HGScannerLib.h

700 lines
25 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef __HGSCANNERLIB_H__
#define __HGSCANNERLIB_H__
#include "HGDef.h"
HG_DECLARE_HANDLE(HGLibImage);
HG_DECLARE_HANDLE(HGLibDevice);
/* 1位黑白图 */
#define HGLIB_IMGTYPE_BINARY 1L
/* 8位灰度图 */
#define HGLIB_IMGTYPE_GRAY 2L
/* 24位真彩色B8G8R8格式 */
#define HGLIB_IMGTYPE_BGR 3L
/* 24位真彩色R8G8B8格式 */
#define HGLIB_IMGTYPE_RGB 4L
/* 32位真彩色带Alpha通道B8G8R8A8格式 */
#define HGLIB_IMGTYPE_BGRA 5L
/* 32位真彩色带Alpha通道R8G8B8A8格式 */
#define HGLIB_IMGTYPE_RGBA 6L
/* 图像数据保存方式 */
#define HGLIB_IMGORIGIN_TOP 1L
#define HGLIB_IMGORIGIN_BOTTOM 2L
/* TIFF压缩方式 */
#define HGLIB_TIFFCOMPRESSION_NONE 1L
#define HGLIB_TIFFCOMPRESSION_CCITTFAX4 2L
#define HGLIB_TIFFCOMPRESSION_LZW 3L
#define HGLIB_TIFFCOMPRESSION_JPEG 4L
/* 设备错误码 */
#define HGLIB_DEV_OPERATECODE_GOOD 0L /* everything A-OK */
#define HGLIB_DEV_OPERATECODE_UNSUPPORTED 1L /* operation is not supported */
#define HGLIB_DEV_OPERATECODE_CANCELLED 2L /* operation was cancelled */
#define HGLIB_DEV_OPERATECODE_BUSY 3L /* device is busy; try again later */
#define HGLIB_DEV_OPERATECODE_INVAL 4L /* data is invalid (includes no dev at open) */
#define HGLIB_DEV_OPERATECODE_EOF 5L /* no more data available (end-of-file) */
#define HGLIB_DEV_OPERATECODE_JAMMED 6L /* document feeder jammed */
#define HGLIB_DEV_OPERATECODE_NO_DOCS 7L /* document feeder out of documents */
#define HGLIB_DEV_OPERATECODE_COVER_OPEN 8L /* scanner cover is open */
#define HGLIB_DEV_OPERATECODE_IO_ERROR 9L /* error during device I/O */
#define HGLIB_DEV_OPERATECODE_NO_MEM 10L /* out of memory */
#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_REMOVE 2L
/* 设备扫描事件 */
#define HGLIB_DEVSCAN_EVENT_BEGIN 1L
#define HGLIB_DEVSCAN_EVENT_END 2L
#define HGLIB_DEVSCAN_EVENT_INFO 3L
/* 组名 */
// 基本设置
#define HGLIB_GROUP_NAME_BASESETTING 1L
// 亮度
#define HGLIB_GROUP_NAME_BRIGHTNESS 2L
// 图像处理
#define HGLIB_GROUP_NAME_IMAGEPROCESS 3L
// 送纸方式设置
#define HGLIB_GROUP_NAME_PAPERFEEDING 4L
/* 配置名 */
#define HGLIB_OPTION_NAME_UNKNOWN 0L
// "多流输出"
#define HGLIB_OPTION_NAME_DLSC 1L
// "多流输出类型"
#define HGLIB_OPTION_NAME_DLSCLX 2L
// "颜色模式"
#define HGLIB_OPTION_NAME_YSMS 3L
// "黑白图像阈值"
#define HGLIB_OPTION_NAME_HBTXYZ 4L
// "灰度或黑白图像 - 除色"
#define HGLIB_OPTION_NAME_HDHHBTX_CS 5L
// "24位彩色图像 - 多流输出除红"
#define HGLIB_OPTION_NAME_24WCSTX_DLSCCH 6L
// "24位彩色图像 - 答题卡除红"
#define HGLIB_OPTION_NAME_24WCSTX_DTKCH 7L
// "背景移除"
#define HGLIB_OPTION_NAME_BJYC 8L
// "背景色彩浮动范围"
#define HGLIB_OPTION_NAME_BJSCFDFW 9L
// "锐化与模糊"
#define HGLIB_OPTION_NAME_RHYMH 10L
// "去除摩尔纹"
#define HGLIB_OPTION_NAME_QCMW 11L
// "除网纹"
#define HGLIB_OPTION_NAME_CWW 12L
// "错误扩散"
#define HGLIB_OPTION_NAME_CWKS 13L
// "黑白图像噪点优化"
#define HGLIB_OPTION_NAME_HBTXZDYH 14L
// "噪点优化尺寸"
#define HGLIB_OPTION_NAME_ZDYHCC 15L
// "纸张尺寸"
#define HGLIB_OPTION_NAME_ZZCC 16L
// "自定义扫描区域"
#define HGLIB_OPTION_NAME_ZDYSMQY 17L
// "扫描区域左侧mm"
#define HGLIB_OPTION_NAME_SMQYZCmm 18L
// "扫描区域右侧mm"
#define HGLIB_OPTION_NAME_SMQYYCmm 19L
// "扫描区域上侧mm"
#define HGLIB_OPTION_NAME_SMQYSCmm 20L
// "扫描区域下侧mm"
#define HGLIB_OPTION_NAME_SMQYXCmm 21L
// "尺寸检测"
#define HGLIB_OPTION_NAME_CCJC 22L
// "扫描页面"
#define HGLIB_OPTION_NAME_SMYM 23L
// "跳过空白页灵敏度"
#define HGLIB_OPTION_NAME_TGKBYLMD 24L
// "分纸强度"
#define HGLIB_OPTION_NAME_FZQD 25L
// "休眠时间"
#define HGLIB_OPTION_NAME_XMSJ 26L
// "分辨率"
#define HGLIB_OPTION_NAME_FBL 27L
// "画质"
#define HGLIB_OPTION_NAME_HZ 28L
// "交换正反面"
#define HGLIB_OPTION_NAME_JHZFM 29L
// "图像拆分"
#define HGLIB_OPTION_NAME_TXCF 30L
// "自动纠偏"
#define HGLIB_OPTION_NAME_ZDJP 31L
// "启用色调曲线"
#define HGLIB_OPTION_NAME_QYSDQX 32L
// "亮度值"
#define HGLIB_OPTION_NAME_LDZ 33L
// "对比度"
#define HGLIB_OPTION_NAME_DBD 34L
// "伽马值"
#define HGLIB_OPTION_NAME_GMZ 35L
// "照片模式"
#define HGLIB_OPTION_NAME_ZPMS 36L
// "消除黑框"
#define HGLIB_OPTION_NAME_XCHK 37L
// "深色样张"
#define HGLIB_OPTION_NAME_SSYZ 38L
// "阈值"
#define HGLIB_OPTION_NAME_YZ 39L
// "背景抗噪等级"
#define HGLIB_OPTION_NAME_BJKZDJ 40L
// "边缘缩进"
#define HGLIB_OPTION_NAME_BYSJ 41L
// "背景填充方式"
#define HGLIB_OPTION_NAME_BJTCFS 42L
// "防止渗透"
#define HGLIB_OPTION_NAME_FZST 43L
// "防止渗透等级"
#define HGLIB_OPTION_NAME_FZSTDJ 44L
// "穿孔移除—左侧"
#define HGLIB_OPTION_NAME_CKYCZC 45L
// #"左侧穿孔搜索范围占幅面比例"
#define HGLIB_OPTION_NAME_ZCCKSSFWZFMBL 46L
// "穿孔移除—右侧"
#define HGLIB_OPTION_NAME_CKYCYC 47L
// #"右侧穿孔搜索范围占幅面比例"
#define HGLIB_OPTION_NAME_YCCKSSFWZFMBL 48L
// "穿孔移除—上侧"
#define HGLIB_OPTION_NAME_CKYCSC 49L
// #"上侧穿孔搜索范围占幅面比例"
#define HGLIB_OPTION_NAME_SCCKSSFWZFMBL 50L
// "穿孔移除—下侧"
#define HGLIB_OPTION_NAME_CKYCXC 51L
// #"下侧穿孔搜索范围占幅面比例"
#define HGLIB_OPTION_NAME_XCCKSSFWZFMBL 52L
// "色彩填充"
#define HGLIB_OPTION_NAME_SCTC 53L
// "超声波检测"
#define HGLIB_OPTION_NAME_CSBJC 54L
// "双张图片处理"
#define HGLIB_OPTION_NAME_SZTPCL 55L
// "装订检测"
#define HGLIB_OPTION_NAME_ZDJC 56L
// "扫描张数"
#define HGLIB_OPTION_NAME_SMZS 57L
// "扫描数量"
#define HGLIB_OPTION_NAME_SMSL 58L
// "文稿方向"
#define HGLIB_OPTION_NAME_WGFX 59L
// "背面旋转180°"
#define HGLIB_OPTION_NAME_BMXZ180 60L
// "折角检测"
#define HGLIB_OPTION_NAME_ZJJC 61L
// "折角大小"
#define HGLIB_OPTION_NAME_ZJDX 62L
// "歪斜检测"
#define HGLIB_OPTION_NAME_WXJC 63L
// "歪斜容忍度"
#define HGLIB_OPTION_NAME_WXRRD 64L
// 自动分纸强度
#define HGLIB_OPTION_NAME_ZDCZQD 65L
// 进纸失败率
#define HGLIB_OPTION_NAME_CZYZ 66L
// 待纸扫描
#define HGLIB_OPTION_NAME_DZSM 67L
// 黑白图像反色输出正常颜色为0 - 黑色1 - 白色)
#define HGLIB_OPTION_NAME_HBTXFSSC 68L
// 对折模式
#define HGLIB_OPTION_NAME_DZMS 69L
// 色偏校正
#define HGLIB_OPTION_NAME_SPJZ 70L
// 待纸扫描退出时间
#define HGLIB_OPTION_NAME_DZSMTCSJ 71L
// 跳过空白页
#define HGLIB_OPTION_NAME_TGKBY 72L
// 镜头脏污检测
#define HGLIB_OPTION_NAME_JTZWJC 73L
// 穿孔移除
#define HGLIB_OPTION_NAME_CKYC 74L
// 穿孔搜索范围占幅面比例
#define HGLIB_OPTION_NAME_CKSSFWZFMBL 75L
// 边界检测
#define HGLIB_OPTION_NAME_BJJC 76L
/* 配置枚举值 */
// "无"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_W 1L
// "彩色+灰度+黑白"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_CS_HD_HB 2L
// "彩色+灰度"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_CS_HD 3L
// "彩色+黑白"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_CS_HB 4L
// "灰度+黑白"
#define HGLIB_OPTION_ENUMVALUE_DLSCLX_HD_HB 5L
// "24位彩色"
#define HGLIB_OPTION_ENUMVALUE_YSMS_24WCS 6L
// "256级灰度"
#define HGLIB_OPTION_ENUMVALUE_YSMS_256JHD 7L
// "黑白"
#define HGLIB_OPTION_ENUMVALUE_YSMS_HB 8L
// "颜色自动识别"
#define HGLIB_OPTION_ENUMVALUE_YSMS_YSZDSB 9L
// "不除色"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_BCS 10L
// "除红色"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_CHS 11L
// "除绿色"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_CLS 12L
// "除蓝色"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_CHULANSE 13L
// "红色增强"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_HSZQ 14L
// "绿色增强"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_LSZQ 15L
// "蓝色增强"
#define HGLIB_OPTION_ENUMVALUE_HDHHBTX_CS_LANSEZENGQIANG 16L
// "无"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_W 17L
// "锐化"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_RH 18L
// "进一步锐化"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_JYBRH 19L
// "模糊"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_MH 20L
// "进一步模糊"
#define HGLIB_OPTION_ENUMVALUE_RHYMH_JYBMH 21L
// "A3"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A3 22L
// "8开"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_8K 23L
// "A4"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A4 24L
// "A4横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A4HX 25L
// "16开"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_16K 26L
// "16开横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_16KHX 27L
// "A5"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A5 28L
// "A5横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A5HX 29L
// "A6"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A6 30L
// "A6横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_A6HX 31L
// "B4"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B4 32L
// "B5"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B5 33L
// "B5横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B5HX 34L
// "B6"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B6 35L
// "B6横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_B6HX 36L
// "Letter"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_Letter 37L
// "Letter横向"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_LetterHX 38L
// "Double Letter"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_DoubleLetter 39L
// "LEGAL"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_LEGAL 40L
// "匹配原始尺寸"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_PPYSCC 41L
// "最大扫描尺寸自动裁切"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_ZDSMCCZDCQ 42L
// "最大扫描尺寸"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_ZDSMCC 43L
// "三联试卷"
#define HGLIB_OPTION_ENUMVALUE_ZZCC_SLSJ 44L
// "单面"
#define HGLIB_OPTION_ENUMVALUE_SMYM_DM 45L
// "双面"
#define HGLIB_OPTION_ENUMVALUE_SMYM_SM 46L
// "跳过空白页(通用)"
#define HGLIB_OPTION_ENUMVALUE_SMYM_TGKBYTY 47L
// "跳过空白页(发票纸)"
#define HGLIB_OPTION_ENUMVALUE_SMYM_TGKBYFPZ 48L
// "对折"
#define HGLIB_OPTION_ENUMVALUE_SMYM_DZ 49L
// "无"
#define HGLIB_OPTION_ENUMVALUE_HZ_W 50L
// "速度优先"
#define HGLIB_OPTION_ENUMVALUE_HZ_SDYX 51L
// "画质优先"
#define HGLIB_OPTION_ENUMVALUE_HZ_HZYX 52L
// "凸多边形"
#define HGLIB_OPTION_ENUMVALUE_BJTCFS_TDBX 53L
// "凹多边形"
#define HGLIB_OPTION_ENUMVALUE_BJTCFS_ADBX 54L
// "弱"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_R 55L
// "较弱"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_JR 56L
// "一般"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_YB 57L
// "较强"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_JQ 58L
// "强"
#define HGLIB_OPTION_ENUMVALUE_FZSTDJ_Q 59L
// "丢弃图像并停止扫描"
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_DQTXBTZSM 60L
// "丢弃图像并继续扫描"
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_DQTXBJXSM 61L
// "上传图像并停止扫描"
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_SCTXBTZSM 62L
// "上传图像并继续扫描"
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_SCTXBJXSM 63L
// "连续扫描"
#define HGLIB_OPTION_ENUMVALUE_SMZS_LXSM 64L
// "扫描指定张数"
#define HGLIB_OPTION_ENUMVALUE_SMZS_SMZDZS 65L
// "0°"
#define HGLIB_OPTION_ENUMVALUE_WGFX_0 66L
// "90°"
#define HGLIB_OPTION_ENUMVALUE_WGFX_90 67L
// "180°"
#define HGLIB_OPTION_ENUMVALUE_WGFX_180 68L
// "-90°"
#define HGLIB_OPTION_ENUMVALUE_WGFX__90 69L
// "自动文本方向识别°"
#define HGLIB_OPTION_ENUMVALUE_WGFX_ZDWBFXSB 70L
// "分纸强度-弱"
#define HGLIB_OPTION_ENUMVALUE_FZQD_R 71L
// "分纸强度-一般"
#define HGLIB_OPTION_ENUMVALUE_FZQD_YB 72L
// "分纸强度-强"
#define HGLIB_OPTION_ENUMVALUE_FZQD_Q 73L
// "不休眠"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_BXM 74L
// "五分钟"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_WFZ 75L
// "十分钟"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_SFZ 76L
// "半小时"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_BXS 77L
// "一小时"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_YXS 78L
// "两小时"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_LXS 79L
// "四小时"
#define HGLIB_OPTION_ENUMVALUE_XMSJ_SXS 80L
// 左右对折
#define HGLIB_OPTION_ENUMVALUE_ZYDZ 81L
// 上下对折
#define HGLIB_OPTION_ENUMVALUE_SXDZ 82L
// 自动对折
#define HGLIB_OPTION_ENUMVALUE_ZDDZ 83L
// 待纸扫描退出时间15s
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_15S 84L
// 待纸扫描退出时间30s
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_30S 85L
// 待纸扫描退出时间60s
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_60S 86L
// 待纸扫描退出时间2min
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_2MIN 87L
// 待纸扫描退出时间4min
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_4MIN 88L
// 待纸扫描退出时间8min
#define HGLIB_OPTION_ENUMVALUE_DZSMTCSJ_8MIN 89L
// 跳过空白页-基于文件大小
#define HGLIB_OPTION_ENUMVALUE_SMYM_TGKBYJYWJDX 90L
// 上传图像并校验
#define HGLIB_OPTION_ENUMVALUE_SZTPCL_SCTXBJY 91L
/* 配置值类型 */
#define HGLIB_OPTION_VALUETYPE_INT 1L
#define HGLIB_OPTION_VALUETYPE_ENUM 2L
#define HGLIB_OPTION_VALUETYPE_DOUBLE 3L
#define HGLIB_OPTION_VALUETYPE_BOOL 4L
/* 配置值范围类型 */
#define HGLIB_OPTION_VALUERANGETYPE_NULL 0L
#define HGLIB_OPTION_VALUERANGETYPE_INTLIST 1L
#define HGLIB_OPTION_VALUERANGETYPE_ENUMLIST 2L
#define HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST 3L
#define HGLIB_OPTION_VALUERANGETYPE_INTRANGE 4L
#define HGLIB_OPTION_VALUERANGETYPE_DOUBLERANGE 5L
#pragma pack(push)
#pragma pack(4)
typedef struct
{
HGUInt size; /* 结构体大小必须初始化为sizeof(HGLibSaveImageParam) */
HGUInt jpegQuality; /* jpeg下有效, 0-100 */
HGUInt tiffCompression; /* tiff下有效, HGLIB_TIFFCOMPRESSION_* */
HGUInt tiffJpegQuality; /* tiff且HGLIB_TIFFCOMPRESSION_JPEG下有效, 0-100 */
HGBool ocr; /* 是否OCRpdf和ofd格式有效 */
}HGLibSaveImageParam;
/* 图像信息 */
typedef struct
{
HGUInt width; /* 宽(像素),列数 */
HGUInt height; /* 高(像素),行数 */
HGUInt type; /* 类型参见HGLIB_IMGTYPE_* */
HGUInt widthStep; /* 每行的字节数 */
HGUInt origin; /* 数据排列方式参见HGLIB_IMGORIGIN_* */
}HGLibImageInfo;
typedef struct
{
HGInt* value;
HGUInt count;
}HGLibDeviceIntValueList;
typedef struct
{
HGUInt* value;
HGUInt count;
}HGLibDeviceEnumValueList;
typedef struct
{
HGDouble* value;
HGUInt count;
}HGLibDeviceDoubleValueList;
typedef struct
{
HGInt minValue;
HGInt maxValue;
}HGLibDeviceIntValueRange;
typedef struct
{
HGDouble minValue;
HGDouble maxValue;
}HGLibDeviceDoubleValueRange;
typedef struct
{
HGUInt option; /* 配置名, 参见HGLIB_OPTION_NAME_* */
HGUInt type; /* 值类型, 参见HGLIB_OPTION_VALUETYPE_* */
union
{
HGInt intValue;
HGUInt enumValue;
HGDouble doubleValue;
HGBool boolValue;
};
HGUInt rangeType; /* 值范围类型, 参见HGLIB_OPTION_VALUERANGETYPE_* */
union
{
HGLibDeviceIntValueList intValueList;
HGLibDeviceEnumValueList enumValueList;
HGLibDeviceDoubleValueList doubleValueList;
HGLibDeviceIntValueRange intValueRange;
HGLibDeviceDoubleValueRange doubleValueRange;
};
}HGLibDeviceParam;
typedef struct
{
HGUInt group; /* 组名, 参见HGLIB_GROUP_NAME_* */
HGLibDeviceParam* param;
HGUInt paramCount;
}HGLibDeviceParamGroup;
#pragma pack(pop)
/* 设备热拔插回调
* event: HGLIB_DEVHOTPLUG_EVENT_*
* deviceName: 设备名
* param: 回调参数
*/
typedef void (HGAPI *HGLibDeviceHotPlugEventFunc)(HGUInt event, const HGChar *deviceName, HGPointer param);
/* 设备扫描事件回调
* device: 设备句柄
* event: HGLIB_DEVSCAN_EVENT_*
* operateCode: 设备错误码, HGLIB_DEVSCAN_EVENT_INFO下有效
* info: 扫描信息, HGLIB_DEVSCAN_EVENT_INFO下有效
* param: 回调参数
*/
typedef void (HGAPI *HGLibDeviceScanEventFunc)(HGLibDevice device, HGUInt event, HGInt operateCode, const HGChar *info, HGPointer param);
/* 设备扫描图像回调
* device: 设备句柄
* image: 图像句柄, 不要调用HGLib_ReleaseImage释放, 回调执行后会自动释放
* param: 回调参数
*/
typedef void (HGAPI *HGLibDeviceScanImageFunc)(HGLibDevice device, HGLibImage image, HGPointer param);
/* 内存拷贝 */
HGEXPORT HGBool HGAPI HGLib_MemoryCopy(HGVoid *dest, const HGVoid *src, HGUInt size);
/* 加载图像 */
HGEXPORT HGLibImage HGAPI HGLib_LoadImage(const HGChar *filePath);
/* 克隆图像 */
HGEXPORT HGLibImage HGAPI HGLib_CloneImage(HGLibImage image, HGUInt type, HGUInt origin);
/* 获取图像数据 */
HGEXPORT HGByte* HGAPI HGLib_GetImageData(HGLibImage image);
/* 获取图像信息 */
HGEXPORT HGBool HGAPI HGLib_GetImageInfo(HGLibImage image, HGLibImageInfo* imageInfo);
/* 获取图像DPI */
HGEXPORT HGBool HGAPI HGLib_GetImageDpi(HGLibImage image, HGUInt *xDpi, HGUInt *yDpi);
/* 保存图像 */
HGEXPORT HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam);
/* 释放图像 */
HGEXPORT HGBool HGAPI HGLib_ReleaseImage(HGLibImage image);
/* 获取OCR文本 */
HGEXPORT HGChar* HGAPI HGLib_GetOcrText(HGLibImage image);
/* 销毁OCR文本 */
HGEXPORT HGBool HGAPI HGLib_ReleaseOcrText(HGChar* ocrText);
/* 初始化扫描仪 */
HGEXPORT HGBool HGAPI HGLib_InitDevice(HGLibDeviceHotPlugEventFunc func, HGPointer param);
/* 反初始化扫描仪 */
HGEXPORT HGBool HGAPI HGLib_DeinitDevice();
/* 获取扫描仪名称列表 */
HGEXPORT HGChar** HGAPI HGLib_GetDeviceNameList();
/* 销毁扫描仪名称列表 */
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceNameList(HGChar** deviceName);
/* 打开设备 */
HGEXPORT HGLibDevice HGAPI HGLib_OpenDevice(const HGChar *deviceName);
/* 关闭设备 */
HGEXPORT HGBool HGAPI HGLib_CloseDevice(HGLibDevice device);
/* 获取设备型号 */
HGEXPORT HGBool HGAPI HGLib_GetDeviceType(HGLibDevice device, HGChar *type, HGUInt maxLen);
/* 获取设备序列号 */
HGEXPORT HGBool HGAPI HGLib_GetDeviceSN(HGLibDevice device, HGChar *sn, HGUInt maxLen);
/* 获取设备固件版本号*/
HGEXPORT HGBool HGAPI HGLib_GetDeviceFWVersion(HGLibDevice device, HGChar* fwVersion, HGUInt maxLen);
/* 获取设备滚轴计数 */
HGEXPORT HGInt HGAPI HGLib_GetDeviceRollerCount(HGLibDevice device);
/* 获取设备历史扫描张数 */
HGEXPORT HGInt HGAPI HGLib_GetDeviceTotalCount(HGLibDevice device);
/* 清除滚轴计数 */
HGEXPORT HGBool HGAPI HGLib_ClearDeviceRollerCount(HGLibDevice device);
/* 设置设备锁定令牌 */
HGEXPORT HGBool HGAPI HGLib_SetDeviceToken(HGLibDevice device, const HGChar *code);
/* 设置是否获取原图 */
HGEXPORT HGBool HGAPI HGLib_SetOriginalImage(HGLibDevice device, HGBool isOriginal);
/* 设置设备参数 */
HGEXPORT HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, HGUInt option, const HGVoid *data);
/* 获取设备参数 */
HGEXPORT HGLibDeviceParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt *count);
HGEXPORT HGLibDeviceParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, HGUInt option);
/* 销毁设备参数 */
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count);
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceParam* param);
/* 重置设备参数 */
HGEXPORT HGBool HGAPI HGLib_ResetDeviceParam(HGLibDevice device);
/* 设备是否有纸 */
HGEXPORT HGBool HGAPI HGLib_DeviceIsPaperOn(HGLibDevice device);
/* 获取设备状态, -1表示异常0表示无纸1表示有纸 */
HGEXPORT HGInt HGAPI HGLib_GetDeviceStatus(HGLibDevice device);
/* 重启设备 */
HGEXPORT HGBool HGAPI HGLib_DeviceRestart(HGLibDevice device);
/* 关闭设备 */
HGEXPORT HGBool HGAPI HGLib_DeviceShutDown(HGLibDevice device);
/* 开始扫描 */
HGEXPORT HGBool HGAPI HGLib_StartDeviceScan(HGLibDevice device, HGLibDeviceScanEventFunc eventFunc, HGPointer eventParam,
HGLibDeviceScanImageFunc imageFunc, HGPointer imageParam);
/* 停止扫描 */
HGEXPORT HGBool HGAPI HGLib_StopDeviceScan(HGLibDevice device);
/* 停止扫描-异步 */
HGEXPORT HGBool HGAPI HGLib_StopDeviceScanAsyn(HGLibDevice device);
/* 获取设备错误码(在调用设备操作函数以后) */
HGEXPORT HGInt HGAPI HGLib_GetDeviceOperateCode(HGLibDevice device);
/* 获取当前图像所属的页码序号必须在HGLibDeviceScanImageFunc回调中调用 */
HGEXPORT HGInt HGAPI HGLib_GetDevicePageId(HGLibDevice device);
#endif /* __HGSCANNERLIB_H__ */