code_app/sdk/scannerlib/HGScannerLib.h

184 lines
5.0 KiB
C
Raw Normal View History

2022-07-19 03:51:00 +00:00
#ifndef __HGSCANNERLIB_H__
#define __HGSCANNERLIB_H__
#include "HGDef.h"
#include "HGScannerLibOption.h"
2022-07-19 03:51:00 +00:00
HG_DECLARE_HANDLE(HGLibImage);
HG_DECLARE_HANDLE(HGLibDevice);
/* TIFFѹ<46><D1B9><EFBFBD><EFBFBD>ʽ */
#define HGLIB_TIFFCOMPRESSION_NONE 1L
#define HGLIB_TIFFCOMPRESSION_CCITTFAX4 2L
#define HGLIB_TIFFCOMPRESSION_LZW 3L
#define HGLIB_TIFFCOMPRESSION_JPEG 4L
/* <20><EFBFBD>Ȱβ<C8B0><CEB2>¼<EFBFBD> */
#define HGLIB_DEVHOTPLUG_EVENT_ARRIVE 1L
#define HGLIB_DEVHOTPLUG_EVENT_REMOVE 2L
/* <20>豸ɨ<E8B1B8><C9A8><EFBFBD>¼<EFBFBD> */
#define HGLIB_DEVSCAN_EVENT_BEGIN 1L
#define HGLIB_DEVSCAN_EVENT_END 2L
#define HGLIB_DEVSCAN_EVENT_INFO 3L
/* <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define HGLIB_DEVPARAM_TYPE_INT 1L
#define HGLIB_DEVPARAM_TYPE_STRING 2L
#define HGLIB_DEVPARAM_TYPE_DOUBLE 3L
#define HGLIB_DEVPARAM_TYPE_BOOL 4L
/* <20><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD> */
#define HGLIB_DEVPARAM_RANGETYPE_NULL 0L
#define HGLIB_DEVPARAM_RANGETYPE_INTLIST 1L
#define HGLIB_DEVPARAM_RANGETYPE_STRINGLIST 2L
#define HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST 3L
#define HGLIB_DEVPARAM_RANGETYPE_INTRANGE 4L
#define HGLIB_DEVPARAM_RANGETYPE_DOUBLERANGE 5L
2022-07-19 03:51:00 +00:00
typedef struct
{
HGUInt size; /* <20><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊsizeof(HGLibSaveImageParam) */
HGUInt jpegQuality; /* jpeg<65><67><EFBFBD><EFBFBD>Ч, 0-100 */
HGUInt tiffCompression; /* tiff<66><66><EFBFBD><EFBFBD>Ч, HGLIB_TIFFCOMPRESSION_* */
HGUInt tiffJpegQuality; /* tiff<66><66>HGLIB_TIFFCOMPRESSION_JPEG<45><47><EFBFBD><EFBFBD>Ч, 0-100 */
HGBool ocr; /* <20>Ƿ<EFBFBD>OCR<43><52>pdf<64><66>ofd<66><64>ʽ<EFBFBD><CABD>Ч */
}HGLibSaveImageParam;
typedef struct
{
HGChar *title; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, UTF8 */
HGUInt type; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>μ<EFBFBD>HGLIB_DEVPARAM_TYPE_* */
union
{
HGInt intValue;
HGChar *stringValue;
HGDouble doubleValue;
HGBool boolValue;
};
}HGLibDeviceSetParam;
typedef struct
{
HGInt* value;
HGUInt count;
}HGLibDeviceIntValueList;
typedef struct
{
HGChar** value;
HGUInt count;
}HGLibDeviceStringValueList;
typedef struct
{
HGDouble* value;
HGUInt count;
}HGLibDeviceDoubleValueList;
typedef struct
{
HGInt minValue;
HGInt maxValue;
}HGLibDeviceIntValueRange;
typedef struct
{
HGDouble minValue;
HGDouble maxValue;
}HGLibDeviceDoubleValueRange;
typedef struct
{
HGLibDeviceSetParam param;
HGUInt rangeType; /* ȡֵ<C8A1><D6B5><EFBFBD><EFBFBD>, <20>μ<EFBFBD>HGLIB_DEVPARAM_RANGETYPE_* */
union
{
HGLibDeviceIntValueList intValueList;
HGLibDeviceStringValueList stringValueList;
HGLibDeviceDoubleValueList doubleValueList;
HGLibDeviceIntValueRange intValueRange;
HGLibDeviceDoubleValueRange doubleValueRange;
};
}HGLibDeviceGetParam;
typedef struct
{
HGChar* groupName;
HGLibDeviceGetParam* param;
HGUInt paramCount;
}HGLibDeviceGetParamGroup;
/* <20><EFBFBD>Ȱβ<C8B0><CEB2>ص<EFBFBD>
* event: HGLIB_DEVHOTPLUG_EVENT_*
* deviceName: <EFBFBD><EFBFBD><EFBFBD>
* param: <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
typedef void (*HGLibDeviceHotPlugEventFunc)(HGUInt event, const HGChar *deviceName, HGPointer param);
/* <20>豸ɨ<E8B1B8><C9A8><EFBFBD>¼<EFBFBD><C2BC>ص<EFBFBD>
* device: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* event: HGLIB_DEVSCAN_EVENT_*
* err: <EFBFBD>Ƿ<EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ, HGLIB_DEVSCAN_EVENT_INFO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
* info: ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ, HGLIB_DEVSCAN_EVENT_INFO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
* param: <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
typedef void (*HGLibDeviceScanEventFunc)(HGLibDevice device, HGUInt event, HGBool err, const HGChar *info, HGPointer param);
/* <20>豸ɨ<E8B1B8><C9A8>ͼ<EFBFBD><CDBC><EFBFBD>ص<EFBFBD>
* device: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* image: ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>HGLib_ReleaseImage<EFBFBD>ͷ<EFBFBD>, <EFBFBD>ص<EFBFBD>ִ<EFBFBD>к<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ͷ<EFBFBD>
* param: <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
typedef void (*HGLibDeviceScanImageFunc)(HGLibDevice device, HGLibImage image, HGPointer param);
/* <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> */
HGEXPORT HGLibImage HGAPI HGLib_LoadImage(const HGChar *filePath);
/* <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> */
HGEXPORT HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam);
/* <20>ͷ<EFBFBD>ͼ<EFBFBD><CDBC> */
HGEXPORT HGBool HGAPI HGLib_ReleaseImage(HGLibImage image);
/* <20><>ʼ<EFBFBD><CABC>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD> */
HGEXPORT HGBool HGAPI HGLib_InitDevice(HGLibDeviceHotPlugEventFunc func, HGPointer param);
/* <20><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD> */
HGEXPORT HGBool HGAPI HGLib_DeinitDevice();
/* <20><>ȡɨ<C8A1><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD> */
2022-07-19 09:09:52 +00:00
HGEXPORT HGChar** HGAPI HGLib_GetDeviceNameList();
2022-07-19 03:51:00 +00:00
/* <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD> */
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceNameList(HGChar** deviceName);
/* <20><><EFBFBD><EFBFBD><EFBFBD>豸 */
HGEXPORT HGLibDevice HGAPI HGLib_OpenDevice(const HGChar *deviceName);
/* <20>ر<EFBFBD><D8B1>豸 */
HGEXPORT HGBool HGAPI HGLib_CloseDevice(HGLibDevice device);
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
HGEXPORT HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, const HGLibDeviceSetParam *param, HGUInt count);
HGEXPORT HGBool HGAPI HGLib_SetDeviceParamEx(HGLibDevice device, const HGChar *option, const HGVoid *data);
2022-07-19 03:51:00 +00:00
/* <20><>ȡ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
HGEXPORT HGLibDeviceGetParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt *count);
HGEXPORT HGLibDeviceGetParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, const HGChar* option);
2022-07-19 03:51:00 +00:00
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceGetParamGroup* paramGroup, HGUInt count);
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceGetParam* param);
2022-07-19 03:51:00 +00:00
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
HGEXPORT HGBool HGAPI HGLib_ResetDeviceParam(HGLibDevice device);
/* <20><>ʼɨ<CABC><C9A8> */
HGEXPORT HGBool HGAPI HGLib_StartDeviceScan(HGLibDevice device, HGLibDeviceScanEventFunc eventFunc, HGPointer eventParam,
HGLibDeviceScanImageFunc imageFunc, HGPointer imageParam);
/* ֹͣɨ<D6B9><C9A8> */
HGEXPORT HGBool HGAPI HGLib_StopDeviceScan(HGLibDevice device);
#endif /* __HGSCANNERLIB_H__ */