diff --git a/build/windows/HGScannerLib/HGScannerLib.vcxproj b/build/windows/HGScannerLib/HGScannerLib.vcxproj
index 5b2aae68..52d2c923 100644
--- a/build/windows/HGScannerLib/HGScannerLib.vcxproj
+++ b/build/windows/HGScannerLib/HGScannerLib.vcxproj
@@ -42,7 +42,6 @@
-
diff --git a/sdk/scannerlib/HGLibDeviceImpl.cpp b/sdk/scannerlib/HGLibDeviceImpl.cpp
index 4ab07ca1..7e46d930 100644
--- a/sdk/scannerlib/HGLibDeviceImpl.cpp
+++ b/sdk/scannerlib/HGLibDeviceImpl.cpp
@@ -4,6 +4,153 @@
#include "base/HGImage.h"
#include "HGString.h"
+const char* GROUP_NAME[] = {
+ NULL,
+ "基本设置",
+ "亮度",
+ "图像处理",
+ "送纸方式设置"
+};
+
+const char* OPTION_NAME[] = {
+ NULL,
+ OPTION_TITLE_DLSC,
+ OPTION_TITLE_DLSCLX,
+ OPTION_TITLE_YSMS,
+ OPTION_TITLE_HBTXYZ,
+ OPTION_TITLE_HDHHBTX_CS,
+ OPTION_TITLE_24WCSTX_DLSCCH,
+ OPTION_TITLE_24WCSTX_DTKCH,
+ OPTION_TITLE_BJYC,
+ OPTION_TITLE_BJSCFDFW,
+ OPTION_TITLE_RHYMH,
+ OPTION_TITLE_QCMW,
+ OPTION_TITLE_CWW,
+ OPTION_TITLE_CWKS,
+ OPTION_TITLE_HBTXZDYH,
+ OPTION_TITLE_ZDYHCC,
+ OPTION_TITLE_ZZCC,
+ OPTION_TITLE_ZDYSMQY,
+ OPTION_TITLE_SMQYZCmm,
+ OPTION_TITLE_SMQYYCmm,
+ OPTION_TITLE_SMQYSCmm,
+ OPTION_TITLE_SMQYXCmm,
+ OPTION_TITLE_CCJC,
+ OPTION_TITLE_SMYM,
+ OPTION_TITLE_TGKBYLMD,
+ OPTION_TITLE_FZQD,
+ OPTION_TITLE_XMSJ,
+ OPTION_TITLE_FBL,
+ OPTION_TITLE_HZ,
+ OPTION_TITLE_JHZFM,
+ OPTION_TITLE_TXCF,
+ OPTION_TITLE_ZDJP,
+ OPTION_TITLE_QYSDQX,
+ OPTION_TITLE_LDZ,
+ OPTION_TITLE_DBD,
+ OPTION_TITLE_GMZ,
+ OPTION_TITLE_ZPMS,
+ OPTION_TITLE_XCHK,
+ OPTION_TITLE_SSYZ,
+ OPTION_TITLE_YZ,
+ OPTION_TITLE_BJKZDJ,
+ OPTION_TITLE_BYSJ,
+ OPTION_TITLE_BJTCFS,
+ OPTION_TITLE_FZST,
+ OPTION_TITLE_FZSTDJ,
+ OPTION_TITLE_CKYC,
+ OPTION_TITLE_CKSSFWZFMBL,
+ OPTION_TITLE_SCTC,
+ OPTION_TITLE_CSBJC,
+ OPTION_TITLE_SZTPCL,
+ OPTION_TITLE_ZDJC,
+ OPTION_TITLE_SMZS,
+ OPTION_TITLE_SMSL,
+ OPTION_TITLE_WGFX,
+ OPTION_TITLE_BMXZ180,
+ OPTION_TITLE_ZJJC,
+ OPTION_TITLE_ZJDX,
+ OPTION_TITLE_WXJC,
+ OPTION_TITLE_WXRRD,
+ OPTION_TITLE_ZDCZQD,
+ OPTION_TITLE_CZYZ,
+ OPTION_TITLE_DZSM
+};
+
+const char* OPTION_ENUMVALUE[] = {
+ NULL,
+ OPTION_VALUE_DLSCLX_W,
+ OPTION_VALUE_DLSCLX_CS_HD_HB,
+ OPTION_VALUE_DLSCLX_CS_HD,
+ OPTION_VALUE_DLSCLX_CS_HB,
+ OPTION_VALUE_DLSCLX_HD_HB,
+ OPTION_VALUE_YSMS_24WCS,
+ OPTION_VALUE_YSMS_256JHD,
+ OPTION_VALUE_YSMS_HB,
+ OPTION_VALUE_YSMS_YSZDSB,
+ OPTION_VALUE_HDHHBTX_CS_BCS,
+ OPTION_VALUE_HDHHBTX_CS_CHS,
+ OPTION_VALUE_HDHHBTX_CS_CLS,
+ OPTION_VALUE_HDHHBTX_CS_CHULANSE,
+ OPTION_VALUE_HDHHBTX_CS_HSZQ,
+ OPTION_VALUE_HDHHBTX_CS_LSZQ,
+ OPTION_VALUE_HDHHBTX_CS_LANSEZENGQIANG,
+ OPTION_VALUE_RHYMH_W,
+ OPTION_VALUE_RHYMH_RH,
+ OPTION_VALUE_RHYMH_JYBRH,
+ OPTION_VALUE_RHYMH_MH,
+ OPTION_VALUE_RHYMH_JYBMH,
+ OPTION_VALUE_ZZCC_A3,
+ OPTION_VALUE_ZZCC_8K,
+ OPTION_VALUE_ZZCC_A4,
+ OPTION_VALUE_ZZCC_A4HX,
+ OPTION_VALUE_ZZCC_16K,
+ OPTION_VALUE_ZZCC_16KHX,
+ OPTION_VALUE_ZZCC_A5,
+ OPTION_VALUE_ZZCC_A5HX,
+ OPTION_VALUE_ZZCC_A6,
+ OPTION_VALUE_ZZCC_A6HX,
+ OPTION_VALUE_ZZCC_B4,
+ OPTION_VALUE_ZZCC_B5,
+ OPTION_VALUE_ZZCC_B5HX,
+ OPTION_VALUE_ZZCC_B6,
+ OPTION_VALUE_ZZCC_B6HX,
+ OPTION_VALUE_ZZCC_Letter,
+ OPTION_VALUE_ZZCC_LetterHX,
+ OPTION_VALUE_ZZCC_DoubleLetter,
+ OPTION_VALUE_ZZCC_LEGAL,
+ OPTION_VALUE_ZZCC_PPYSCC,
+ OPTION_VALUE_ZZCC_ZDSMCCZDCQ,
+ OPTION_VALUE_ZZCC_ZDSMCC,
+ OPTION_VALUE_ZZCC_SLSJ,
+ OPTION_VALUE_SMYM_DM,
+ OPTION_VALUE_SMYM_SM,
+ OPTION_VALUE_SMYM_TGKBYTY,
+ OPTION_VALUE_SMYM_TGKBYFPZ,
+ OPTION_VALUE_SMYM_DZ,
+ OPTION_VALUE_HZ_W,
+ OPTION_VALUE_HZ_SDYX,
+ OPTION_VALUE_HZ_HZYX,
+ OPTION_VALUE_BJTCFS_TDBX,
+ OPTION_VALUE_BJTCFS_ADBX,
+ OPTION_VALUE_FZSTDJ_R,
+ OPTION_VALUE_FZSTDJ_JR,
+ OPTION_VALUE_FZSTDJ_YB,
+ OPTION_VALUE_FZSTDJ_JQ,
+ OPTION_VALUE_FZSTDJ_Q,
+ OPTION_VALUE_SZTPCL_DQTXBTZSM,
+ OPTION_VALUE_SZTPCL_DQTXBJXSM,
+ OPTION_VALUE_SZTPCL_SCTXBTZSM,
+ OPTION_VALUE_SZTPCL_SCTXBJXSM,
+ OPTION_VALUE_SMZS_LXSM,
+ OPTION_VALUE_SMZS_SMZDZS,
+ OPTION_VALUE_WGFX_0,
+ OPTION_VALUE_WGFX_90,
+ OPTION_VALUE_WGFX_180,
+ OPTION_VALUE_WGFX__90,
+ OPTION_VALUE_WGFX_ZDWBFXSB
+};
+
struct DeviceParam
{
DeviceParam()
@@ -205,10 +352,14 @@ HGBool HGLibDeviceImpl::Close()
return HGTRUE;
}
-HGBool HGLibDeviceImpl::SetParam(const HGChar* option, const HGVoid* data)
+HGBool HGLibDeviceImpl::SetParam(HGUInt option, const HGVoid* data)
{
assert(NULL != m_devHandle);
- if (NULL == option || NULL == data)
+ if (NULL == data)
+ return HGFALSE;
+
+ const char *optionName = GetOptionName(option);
+ if (NULL == optionName)
return HGFALSE;
HGBool ret = HGFALSE;
@@ -220,17 +371,20 @@ HGBool HGLibDeviceImpl::SetParam(const HGChar* option, const HGVoid* data)
if (NULL == desp)
continue;
- const char* name = desp->name;
+ const char* name = desp->title;
while (' ' == *name)
++name;
- if (0 == strcmp(option, name))
+ if (0 == strcmp(optionName, name))
{
if (SANE_TYPE_STRING == desp->type)
{
- SANE_Char* value = (SANE_Char*)(HGChar*)data;
- if (SANE_STATUS_GOOD == sane_control_option(m_devHandle, i, SANE_ACTION_SET_VALUE, value, NULL))
- ret = HGTRUE;
+ SANE_Char* value = (SANE_Char*)GetOptionEnumValue(*(HGUInt*)data);
+ if (NULL != value)
+ {
+ if (SANE_STATUS_GOOD == sane_control_option(m_devHandle, i, SANE_ACTION_SET_VALUE, value, NULL))
+ ret = HGTRUE;
+ }
}
else if (SANE_TYPE_INT == desp->type)
{
@@ -258,7 +412,7 @@ HGBool HGLibDeviceImpl::SetParam(const HGChar* option, const HGVoid* data)
return ret;
}
-HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
+HGLibDeviceParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
{
assert(NULL != m_devHandle);
if (NULL == count)
@@ -274,7 +428,7 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
if (NULL == desp)
continue;
- const char* name = desp->name;
+ const char* name = desp->title;
while (' ' == *name)
++name;
@@ -291,12 +445,12 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
DeviceParam devParam;
devParam.option = name;
- devParam.valueType = HGLIB_DEVPARAM_TYPE_STRING;
+ devParam.valueType = HGLIB_OPTION_VALUETYPE_ENUM;
devParam.stringValue = value;
assert(SANE_CONSTRAINT_STRING_LIST == desp->constraint_type);
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_STRINGLIST;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_ENUMLIST;
const SANE_String_Const* p = desp->constraint.string_list;
while (NULL != *p)
{
@@ -314,12 +468,12 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
DeviceParam devParam;
devParam.option = name;
- devParam.valueType = HGLIB_DEVPARAM_TYPE_INT;
+ devParam.valueType = HGLIB_OPTION_VALUETYPE_INT;
devParam.intValue = (int)value;
if (SANE_CONSTRAINT_WORD_LIST == desp->constraint_type)
{
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_INTLIST;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_INTLIST;
const SANE_Word* p = desp->constraint.word_list;
for (SANE_Int i = 0; i < p[0]; ++i)
{
@@ -328,7 +482,7 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
}
else if (SANE_CONSTRAINT_RANGE == desp->constraint_type)
{
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_INTRANGE;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_INTRANGE;
devParam.intValueMin = desp->constraint.range->min;
devParam.intValueMax = desp->constraint.range->max;
}
@@ -343,12 +497,12 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
DeviceParam devParam;
devParam.option = name;
- devParam.valueType = HGLIB_DEVPARAM_TYPE_DOUBLE;
+ devParam.valueType = HGLIB_OPTION_VALUETYPE_DOUBLE;
devParam.doubleValue = SANE_UNFIX(value);
if (SANE_CONSTRAINT_WORD_LIST == desp->constraint_type)
{
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST;
const SANE_Word* p = desp->constraint.word_list;
for (SANE_Int i = 0; i < p[0]; ++i)
{
@@ -357,7 +511,7 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
}
else if (SANE_CONSTRAINT_RANGE == desp->constraint_type)
{
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_DOUBLERANGE;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_DOUBLERANGE;
devParam.doubleValueMin = SANE_UNFIX(desp->constraint.range->min);
devParam.doubleValueMax = SANE_UNFIX(desp->constraint.range->max);
}
@@ -372,10 +526,10 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
DeviceParam devParam;
devParam.option = name;
- devParam.valueType = HGLIB_DEVPARAM_TYPE_BOOL;
+ devParam.valueType = HGLIB_OPTION_VALUETYPE_BOOL;
devParam.boolValue = (bool)value;
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_NULL;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_NULL;
assert(!devParams.empty());
devParams[devParams.size() - 1].devParams.push_back(devParam);
@@ -383,44 +537,34 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
}
*count = (HGUInt)devParams.size();
- HGLibDeviceGetParamGroup* paramGroup = (HGLibDeviceGetParamGroup*)malloc((*count) * sizeof(HGLibDeviceGetParamGroup));
+ HGLibDeviceParamGroup* paramGroup = (HGLibDeviceParamGroup*)malloc((*count) * sizeof(HGLibDeviceParamGroup));
if (NULL != paramGroup)
{
for (int i = 0; i < (int)devParams.size(); ++i)
{
- paramGroup[i].groupName = (HGChar *)malloc(devParams[i].groupName.size() + 1);
- if (NULL != paramGroup[i].groupName)
- strcpy(paramGroup[i].groupName, devParams[i].groupName.c_str());
-
+ paramGroup[i].group = GetGroupName(devParams[i].groupName.c_str());
paramGroup[i].paramCount = (HGUInt)devParams[i].devParams.size();
- paramGroup[i].param = (HGLibDeviceGetParam*)malloc(paramGroup[i].paramCount * sizeof(HGLibDeviceGetParam));
+ paramGroup[i].param = (HGLibDeviceParam*)malloc(paramGroup[i].paramCount * sizeof(HGLibDeviceParam));
if (NULL != paramGroup[i].param)
{
for (int j = 0; j < (int)devParams[i].devParams.size(); ++j)
{
- HGLibDeviceGetParam& dest = paramGroup[i].param[j];
+ HGLibDeviceParam& dest = paramGroup[i].param[j];
DeviceParam& src = devParams[i].devParams[j];
- dest.option = (HGChar *)malloc(src.option.size() + 1);
- if (NULL != dest.option)
- strcpy(dest.option, src.option.c_str());
-
+ dest.option = GetOptionName(src.option.c_str());
dest.type = src.valueType;
- if (HGLIB_DEVPARAM_TYPE_INT == dest.type)
+ if (HGLIB_OPTION_VALUETYPE_INT == dest.type)
dest.intValue = src.intValue;
- else if (HGLIB_DEVPARAM_TYPE_DOUBLE == dest.type)
+ else if (HGLIB_OPTION_VALUETYPE_DOUBLE == dest.type)
dest.doubleValue = src.doubleValue;
- else if (HGLIB_DEVPARAM_TYPE_BOOL == dest.type)
+ else if (HGLIB_OPTION_VALUETYPE_BOOL == dest.type)
dest.boolValue = (HGBool)src.boolValue;
- else if (HGLIB_DEVPARAM_TYPE_STRING == dest.type)
- {
- dest.stringValue = (HGChar *)malloc(src.stringValue.size() + 1);
- if (NULL != dest.stringValue)
- strcpy(dest.stringValue, src.stringValue.c_str());
- }
+ else if (HGLIB_OPTION_VALUETYPE_ENUM == dest.type)
+ dest.enumValue = GetOptionEnumValue(src.stringValue.c_str());
dest.rangeType = src.rangeType;
- if (HGLIB_DEVPARAM_RANGETYPE_INTLIST == dest.rangeType)
+ if (HGLIB_OPTION_VALUERANGETYPE_INTLIST == dest.rangeType)
{
dest.intValueList.count = (HGUInt)src.intValueList.size();
dest.intValueList.value = (HGInt *)malloc(dest.intValueList.count * sizeof(HGInt));
@@ -432,7 +576,7 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
}
}
}
- else if (HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST == dest.rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST == dest.rangeType)
{
dest.doubleValueList.count = (HGUInt)src.doubleValueList.size();
dest.doubleValueList.value = (HGDouble*)malloc(dest.doubleValueList.count * sizeof(HGDouble));
@@ -444,27 +588,25 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
}
}
}
- else if (HGLIB_DEVPARAM_RANGETYPE_INTRANGE == dest.rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_INTRANGE == dest.rangeType)
{
dest.intValueRange.minValue = src.intValueMin;
dest.intValueRange.maxValue = src.intValueMax;
}
- else if (HGLIB_DEVPARAM_RANGETYPE_DOUBLERANGE == dest.rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_DOUBLERANGE == dest.rangeType)
{
dest.doubleValueRange.minValue = src.doubleValueMin;
dest.doubleValueRange.maxValue = src.doubleValueMax;
}
- else if (HGLIB_DEVPARAM_RANGETYPE_STRINGLIST == dest.rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_ENUMLIST == dest.rangeType)
{
- dest.stringValueList.count = (HGUInt)src.stringValueList.size();
- dest.stringValueList.value = (HGChar **)malloc(dest.stringValueList.count * sizeof(HGChar *));
- if (NULL != dest.stringValueList.value)
+ dest.enumValueList.count = (HGUInt)src.stringValueList.size();
+ dest.enumValueList.value = (HGUInt*)malloc(dest.enumValueList.count * sizeof(HGUInt));
+ if (NULL != dest.enumValueList.value)
{
for (int k = 0; k < (int)src.stringValueList.size(); ++k)
{
- dest.stringValueList.value[k] = (HGChar *)malloc(src.stringValueList[k].size() + 1);
- if (NULL != dest.stringValueList.value[k])
- strcpy(dest.stringValueList.value[k], src.stringValueList[k].c_str());
+ dest.enumValueList.value[k] = GetOptionEnumValue(src.stringValueList[k].c_str());
}
}
}
@@ -476,13 +618,14 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
return paramGroup;
}
-HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
+HGLibDeviceParam* HGLibDeviceImpl::GetParam(HGUInt option)
{
assert(NULL != m_devHandle);
- if (NULL == option)
+ const char* optionName = GetOptionName(option);
+ if (NULL == optionName)
return NULL;
- HGLibDeviceGetParam* param = NULL;
+ HGLibDeviceParam* param = NULL;
SANE_Int num_dev_options = 0;
sane_control_option(m_devHandle, 0, SANE_ACTION_GET_VALUE, &num_dev_options, NULL);
for (int i = 1; i < num_dev_options; ++i)
@@ -491,11 +634,11 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
if (NULL == desp)
continue;
- const char* name = desp->name;
+ const char* name = desp->title;
while (' ' == *name)
++name;
- if (0 == strcmp(option, name))
+ if (0 == strcmp(optionName, name))
{
DeviceParam devParam;
devParam.option = name;
@@ -505,12 +648,12 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
char value[256] = { 0 };
sane_control_option(m_devHandle, i, SANE_ACTION_GET_VALUE, value, NULL);
- devParam.valueType = HGLIB_DEVPARAM_TYPE_STRING;
+ devParam.valueType = HGLIB_OPTION_VALUETYPE_ENUM;
devParam.stringValue = value;
assert(SANE_CONSTRAINT_STRING_LIST == desp->constraint_type);
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_STRINGLIST;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_ENUMLIST;
const SANE_String_Const* p = desp->constraint.string_list;
while (NULL != *p)
{
@@ -523,12 +666,12 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
SANE_Int value = 0;
sane_control_option(m_devHandle, i, SANE_ACTION_GET_VALUE, &value, NULL);
- devParam.valueType = HGLIB_DEVPARAM_TYPE_INT;
+ devParam.valueType = HGLIB_OPTION_VALUETYPE_INT;
devParam.intValue = (int)value;
if (SANE_CONSTRAINT_WORD_LIST == desp->constraint_type)
{
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_INTLIST;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_INTLIST;
const SANE_Word* p = desp->constraint.word_list;
for (SANE_Int i = 0; i < p[0]; ++i)
{
@@ -537,7 +680,7 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
}
else if (SANE_CONSTRAINT_RANGE == desp->constraint_type)
{
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_INTRANGE;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_INTRANGE;
devParam.intValueMin = desp->constraint.range->min;
devParam.intValueMax = desp->constraint.range->max;
}
@@ -547,12 +690,12 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
SANE_Word value = 0;
sane_control_option(m_devHandle, i, SANE_ACTION_GET_VALUE, &value, NULL);
- devParam.valueType = HGLIB_DEVPARAM_TYPE_DOUBLE;
+ devParam.valueType = HGLIB_OPTION_VALUETYPE_DOUBLE;
devParam.doubleValue = SANE_UNFIX(value);
if (SANE_CONSTRAINT_WORD_LIST == desp->constraint_type)
{
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST;
const SANE_Word* p = desp->constraint.word_list;
for (SANE_Int i = 0; i < p[0]; ++i)
{
@@ -561,7 +704,7 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
}
else if (SANE_CONSTRAINT_RANGE == desp->constraint_type)
{
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_DOUBLERANGE;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_DOUBLERANGE;
devParam.doubleValueMin = SANE_UNFIX(desp->constraint.range->min);
devParam.doubleValueMax = SANE_UNFIX(desp->constraint.range->max);
}
@@ -571,35 +714,28 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
SANE_Bool value = 0;
sane_control_option(m_devHandle, i, SANE_ACTION_GET_VALUE, &value, NULL);
- devParam.valueType = HGLIB_DEVPARAM_TYPE_BOOL;
+ devParam.valueType = HGLIB_OPTION_VALUETYPE_BOOL;
devParam.boolValue = (bool)value;
- devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_NULL;
+ devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_NULL;
}
assert(0 != devParam.valueType);
- param = (HGLibDeviceGetParam*)malloc(sizeof(HGLibDeviceGetParam));
+ param = (HGLibDeviceParam*)malloc(sizeof(HGLibDeviceParam));
if (NULL != param)
{
- param->option = (HGChar*)malloc(devParam.option.size() + 1);
- if (NULL != param->option)
- strcpy(param->option, devParam.option.c_str());
-
+ param->option = GetOptionName(devParam.option.c_str());
param->type = devParam.valueType;
- if (HGLIB_DEVPARAM_TYPE_INT == param->type)
+ if (HGLIB_OPTION_VALUETYPE_INT == param->type)
param->intValue = devParam.intValue;
- else if (HGLIB_DEVPARAM_TYPE_DOUBLE == param->type)
+ else if (HGLIB_OPTION_VALUETYPE_DOUBLE == param->type)
param->doubleValue = devParam.doubleValue;
- else if (HGLIB_DEVPARAM_TYPE_BOOL == param->type)
+ else if (HGLIB_OPTION_VALUETYPE_BOOL == param->type)
param->boolValue = (HGBool)devParam.boolValue;
- else if (HGLIB_DEVPARAM_TYPE_STRING == param->type)
- {
- param->stringValue = (HGChar*)malloc(devParam.stringValue.size() + 1);
- if (NULL != param->stringValue)
- strcpy(param->stringValue, devParam.stringValue.c_str());
- }
+ else if (HGLIB_OPTION_VALUETYPE_ENUM == param->type)
+ param->enumValue = GetOptionEnumValue(devParam.stringValue.c_str());
param->rangeType = devParam.rangeType;
- if (HGLIB_DEVPARAM_RANGETYPE_INTLIST == param->rangeType)
+ if (HGLIB_OPTION_VALUERANGETYPE_INTLIST == param->rangeType)
{
param->intValueList.count = (HGUInt)devParam.intValueList.size();
param->intValueList.value = (HGInt*)malloc(param->intValueList.count * sizeof(HGInt));
@@ -611,7 +747,7 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
}
}
}
- else if (HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST == param->rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST == param->rangeType)
{
param->doubleValueList.count = (HGUInt)devParam.doubleValueList.size();
param->doubleValueList.value = (HGDouble*)malloc(param->doubleValueList.count * sizeof(HGDouble));
@@ -623,27 +759,25 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
}
}
}
- else if (HGLIB_DEVPARAM_RANGETYPE_INTRANGE == param->rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_INTRANGE == param->rangeType)
{
param->intValueRange.minValue = devParam.intValueMin;
param->intValueRange.maxValue = devParam.intValueMax;
}
- else if (HGLIB_DEVPARAM_RANGETYPE_DOUBLERANGE == param->rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_DOUBLERANGE == param->rangeType)
{
param->doubleValueRange.minValue = devParam.doubleValueMin;
param->doubleValueRange.maxValue = devParam.doubleValueMax;
}
- else if (HGLIB_DEVPARAM_RANGETYPE_STRINGLIST == param->rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_ENUMLIST == param->rangeType)
{
- param->stringValueList.count = (HGUInt)devParam.stringValueList.size();
- param->stringValueList.value = (HGChar**)malloc(param->stringValueList.count * sizeof(HGChar*));
- if (NULL != param->stringValueList.value)
+ param->enumValueList.count = (HGUInt)devParam.stringValueList.size();
+ param->enumValueList.value = (HGUInt*)malloc(param->enumValueList.count * sizeof(HGUInt));
+ if (NULL != param->enumValueList.value)
{
for (int k = 0; k < (int)devParam.stringValueList.size(); ++k)
{
- param->stringValueList.value[k] = (HGChar*)malloc(devParam.stringValueList[k].size() + 1);
- if (NULL != param->stringValueList.value[k])
- strcpy(param->stringValueList.value[k], devParam.stringValueList[k].c_str());
+ param->enumValueList.value[k] = GetOptionEnumValue(devParam.stringValueList[k].c_str());
}
}
}
@@ -656,7 +790,7 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
return param;
}
-HGBool HGLibDeviceImpl::ReleaseParamGroupList(HGLibDeviceGetParamGroup* paramGroup, HGUInt count)
+HGBool HGLibDeviceImpl::ReleaseParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count)
{
if (NULL == paramGroup || 0 == count)
{
@@ -667,23 +801,14 @@ HGBool HGLibDeviceImpl::ReleaseParamGroupList(HGLibDeviceGetParamGroup* paramGro
{
for (HGUInt j = 0; j < paramGroup[i].paramCount; ++j)
{
- free(paramGroup[i].param[j].option);
- if (HGLIB_DEVPARAM_TYPE_STRING == paramGroup[i].param[j].type)
- free(paramGroup[i].param[j].stringValue);
-
- if (HGLIB_DEVPARAM_RANGETYPE_INTLIST == paramGroup[i].param[j].rangeType)
+ if (HGLIB_OPTION_VALUERANGETYPE_INTLIST == paramGroup[i].param[j].rangeType)
free(paramGroup[i].param[j].intValueList.value);
- else if (HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST == paramGroup[i].param[j].rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST == paramGroup[i].param[j].rangeType)
free(paramGroup[i].param[j].doubleValueList.value);
- else if (HGLIB_DEVPARAM_RANGETYPE_STRINGLIST == paramGroup[i].param[j].rangeType)
- {
- for (HGUInt k = 0; k < paramGroup[i].param[j].stringValueList.count; ++k)
- free(paramGroup[i].param[j].stringValueList.value[k]);
- free(paramGroup[i].param[j].stringValueList.value);
- }
+ else if (HGLIB_OPTION_VALUERANGETYPE_ENUMLIST == paramGroup[i].param[j].rangeType)
+ free(paramGroup[i].param[j].enumValueList.value);
}
- free(paramGroup[i].groupName);
free(paramGroup[i].param);
}
@@ -691,27 +816,19 @@ HGBool HGLibDeviceImpl::ReleaseParamGroupList(HGLibDeviceGetParamGroup* paramGro
return HGTRUE;
}
-HGBool HGLibDeviceImpl::ReleaseParam(HGLibDeviceGetParam* param)
+HGBool HGLibDeviceImpl::ReleaseParam(HGLibDeviceParam* param)
{
if (NULL == param)
{
return HGFALSE;
}
- free(param->option);
- if (HGLIB_DEVPARAM_TYPE_STRING == param->type)
- free(param->stringValue);
-
- if (HGLIB_DEVPARAM_RANGETYPE_INTLIST == param->rangeType)
+ if (HGLIB_OPTION_VALUERANGETYPE_INTLIST == param->rangeType)
free(param->intValueList.value);
- else if (HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST == param->rangeType)
+ else if (HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST == param->rangeType)
free(param->doubleValueList.value);
- else if (HGLIB_DEVPARAM_RANGETYPE_STRINGLIST == param->rangeType)
- {
- for (HGUInt k = 0; k < param->stringValueList.count; ++k)
- free(param->stringValueList.value[k]);
- free(param->stringValueList.value);
- }
+ else if (HGLIB_OPTION_VALUERANGETYPE_ENUMLIST == param->rangeType)
+ free(param->enumValueList.value);
free(param);
return HGTRUE;
@@ -800,6 +917,81 @@ HGBool HGLibDeviceImpl::StopScan()
return HGTRUE;
}
+const char* HGLibDeviceImpl::GetGroupName(HGUInt group)
+{
+ if (group > HGLIB_GROUP_NAME_PAPERFEEDING)
+ return NULL;
+ return GROUP_NAME[group];
+}
+
+HGUInt HGLibDeviceImpl::GetGroupName(const char* group)
+{
+ if (NULL == group)
+ return 0;
+
+ HGUInt ret = 0;
+ for (int i = 1; i < sizeof(GROUP_NAME) / sizeof(const char*); ++i)
+ {
+ if (0 == strcmp(group, GROUP_NAME[i]))
+ {
+ ret = i;
+ break;
+ }
+ }
+
+ return ret;
+}
+
+const char* HGLibDeviceImpl::GetOptionName(HGUInt option)
+{
+ if (option > HGLIB_OPTION_NAME_DZSM)
+ return NULL;
+ return OPTION_NAME[option];
+}
+
+HGUInt HGLibDeviceImpl::GetOptionName(const char* option)
+{
+ if (NULL == option)
+ return 0;
+
+ HGUInt ret = 0;
+ for (int i = 1; i < sizeof(OPTION_NAME) / sizeof(const char*); ++i)
+ {
+ if (0 == strcmp(option, OPTION_NAME[i]))
+ {
+ ret = i;
+ break;
+ }
+ }
+
+ return ret;
+}
+
+const char* HGLibDeviceImpl::GetOptionEnumValue(HGUInt enumValue)
+{
+ if (enumValue > HGLIB_OPTION_ENUMVALUE_WGFX_ZDWBFXSB)
+ return NULL;
+ return OPTION_ENUMVALUE[enumValue];
+}
+
+HGUInt HGLibDeviceImpl::GetOptionEnumValue(const char* enumValue)
+{
+ if (NULL == enumValue)
+ return 0;
+
+ HGUInt ret = 0;
+ for (int i = 1; i < sizeof(OPTION_ENUMVALUE) / sizeof(const char*); ++i)
+ {
+ if (0 == strcmp(enumValue, OPTION_ENUMVALUE[i]))
+ {
+ ret = i;
+ break;
+ }
+ }
+
+ return ret;
+}
+
int HGLibDeviceImpl::sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param)
{
switch (code)
diff --git a/sdk/scannerlib/HGLibDeviceImpl.hpp b/sdk/scannerlib/HGLibDeviceImpl.hpp
index 4ab268ff..f39b7adc 100644
--- a/sdk/scannerlib/HGLibDeviceImpl.hpp
+++ b/sdk/scannerlib/HGLibDeviceImpl.hpp
@@ -23,17 +23,23 @@ public:
static HGLibDeviceImpl* Open(const HGChar* deviceName);
HGBool Close();
- HGBool SetParam(const HGChar* option, const HGVoid* data);
- HGLibDeviceGetParamGroup* GetParamGroupList(HGUInt* count);
- HGLibDeviceGetParam* GetParam(const HGChar* option);
- static HGBool ReleaseParamGroupList(HGLibDeviceGetParamGroup* paramGroup, HGUInt count);
- static HGBool ReleaseParam(HGLibDeviceGetParam* param);
+ HGBool SetParam(HGUInt option, const HGVoid* data);
+ HGLibDeviceParamGroup* GetParamGroupList(HGUInt* count);
+ HGLibDeviceParam* GetParam(HGUInt option);
+ static HGBool ReleaseParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count);
+ static HGBool ReleaseParam(HGLibDeviceParam* param);
HGBool ResetParam();
HGBool StartScan(HGLibDeviceScanEventFunc eventFunc, HGPointer eventParam,
HGLibDeviceScanImageFunc imageFunc, HGPointer imageParam);
HGBool StopScan();
private:
+ static const char* GetGroupName(HGUInt group);
+ static HGUInt GetGroupName(const char* group);
+ static const char* GetOptionName(HGUInt option);
+ static HGUInt GetOptionName(const char* option);
+ static const char* GetOptionEnumValue(HGUInt enumValue);
+ static HGUInt GetOptionEnumValue(const char* enumValue);
static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param);
private:
diff --git a/sdk/scannerlib/HGScannerLib.cpp b/sdk/scannerlib/HGScannerLib.cpp
index 6b07b1de..9f11d091 100644
--- a/sdk/scannerlib/HGScannerLib.cpp
+++ b/sdk/scannerlib/HGScannerLib.cpp
@@ -129,7 +129,7 @@ HGBool HGAPI HGLib_CloseDevice(HGLibDevice device)
return deviceImpl->Close();
}
-HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, const HGChar* option, const HGVoid* data)
+HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, HGUInt option, const HGVoid* data)
{
if (NULL == device)
{
@@ -140,7 +140,7 @@ HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, const HGChar* option, cons
return deviceImpl->SetParam(option, data);
}
-HGLibDeviceGetParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt* count)
+HGLibDeviceParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt* count)
{
if (NULL == device)
{
@@ -151,7 +151,7 @@ HGLibDeviceGetParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device
return deviceImpl->GetParamGroupList(count);
}
-HGLibDeviceGetParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, const HGChar* option)
+HGLibDeviceParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, HGUInt option)
{
if (NULL == device)
{
@@ -162,12 +162,12 @@ HGLibDeviceGetParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, const HGChar
return deviceImpl->GetParam(option);
}
-HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceGetParamGroup* paramGroup, HGUInt count)
+HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count)
{
return HGLibDeviceImpl::ReleaseParamGroupList(paramGroup, count);
}
-HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceGetParam* param)
+HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceParam* param)
{
return HGLibDeviceImpl::ReleaseParam(param);
}
diff --git a/sdk/scannerlib/HGScannerLib.h b/sdk/scannerlib/HGScannerLib.h
index ef6eddce..68c75574 100644
--- a/sdk/scannerlib/HGScannerLib.h
+++ b/sdk/scannerlib/HGScannerLib.h
@@ -2,7 +2,6 @@
#define __HGSCANNERLIB_H__
#include "HGDef.h"
-#include "HGScannerLibOption.h"
HG_DECLARE_HANDLE(HGLibImage);
HG_DECLARE_HANDLE(HGLibDevice);
@@ -18,23 +17,299 @@ HG_DECLARE_HANDLE(HGLibDevice);
#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_DEVSCAN_EVENT_BEGIN 1L
+#define HGLIB_DEVSCAN_EVENT_END 2L
+#define HGLIB_DEVSCAN_EVENT_INFO 3L
-/* 设备参数类型 */
-#define HGLIB_DEVPARAM_TYPE_INT 1L
-#define HGLIB_DEVPARAM_TYPE_STRING 2L
-#define HGLIB_DEVPARAM_TYPE_DOUBLE 3L
-#define HGLIB_DEVPARAM_TYPE_BOOL 4L
+/* 组名 */
+// 基本设置
+#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_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
+/* 配置名 */
+// "多流输出"
+#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_CKYC 45L
+// #"穿孔搜索范围占幅面比例"
+#define HGLIB_OPTION_NAME_CKSSFWZFMBL 46L
+// "色彩填充"
+#define HGLIB_OPTION_NAME_SCTC 47L
+// "超声波检测"
+#define HGLIB_OPTION_NAME_CSBJC 48L
+// "双张图片处理"
+#define HGLIB_OPTION_NAME_SZTPCL 49L
+// "装订检测"
+#define HGLIB_OPTION_NAME_ZDJC 50L
+// "扫描张数"
+#define HGLIB_OPTION_NAME_SMZS 51L
+// "扫描数量"
+#define HGLIB_OPTION_NAME_SMSL 52L
+// "文稿方向"
+#define HGLIB_OPTION_NAME_WGFX 53L
+// "背面旋转180°"
+#define HGLIB_OPTION_NAME_BMXZ180 54L
+// "折角检测"
+#define HGLIB_OPTION_NAME_ZJJC 55L
+// "折角大小"
+#define HGLIB_OPTION_NAME_ZJDX 56L
+// "歪斜检测"
+#define HGLIB_OPTION_NAME_WXJC 57L
+// "歪斜容忍度"
+#define HGLIB_OPTION_NAME_WXRRD 58L
+// 自动搓纸强度
+#define HGLIB_OPTION_NAME_ZDCZQD 59L
+// 搓纸阈值
+#define HGLIB_OPTION_NAME_CZYZ 60L
+// 待纸扫描
+#define HGLIB_OPTION_NAME_DZSM 61L
+
+/* 配置枚举值 */
+// "无"
+#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_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
typedef struct
{
@@ -53,9 +328,9 @@ typedef struct
typedef struct
{
- HGChar** value;
+ HGUInt* value;
HGUInt count;
-}HGLibDeviceStringValueList;
+}HGLibDeviceEnumValueList;
typedef struct
{
@@ -77,34 +352,34 @@ typedef struct
typedef struct
{
- HGChar* option; /* 参数名 */
+ HGUInt option; /* 配置名, 参见HGLIB_OPTION_NAME_* */
- HGUInt type; /* 参数类型, 参见HGLIB_DEVPARAM_TYPE_* */
+ HGUInt type; /* 值类型, 参见HGLIB_OPTION_VALUETYPE_* */
union
{
HGInt intValue;
- HGChar* stringValue;
+ HGUInt enumValue;
HGDouble doubleValue;
HGBool boolValue;
};
- HGUInt rangeType; /* 取值类型, 参见HGLIB_DEVPARAM_RANGETYPE_* */
+ HGUInt rangeType; /* 值范围类型, 参见HGLIB_OPTION_VALUERANGETYPE_* */
union
{
HGLibDeviceIntValueList intValueList;
- HGLibDeviceStringValueList stringValueList;
+ HGLibDeviceEnumValueList enumValueList;
HGLibDeviceDoubleValueList doubleValueList;
HGLibDeviceIntValueRange intValueRange;
HGLibDeviceDoubleValueRange doubleValueRange;
};
-}HGLibDeviceGetParam;
+}HGLibDeviceParam;
typedef struct
{
- HGChar* groupName;
- HGLibDeviceGetParam* param;
+ HGUInt group; /* 组名, 参见HGLIB_GROUP_NAME_* */
+ HGLibDeviceParam* param;
HGUInt paramCount;
-}HGLibDeviceGetParamGroup;
+}HGLibDeviceParamGroup;
/* 设备热拔插回调
* event: HGLIB_DEVHOTPLUG_EVENT_*
@@ -157,15 +432,15 @@ HGEXPORT HGLibDevice HGAPI HGLib_OpenDevice(const HGChar *deviceName);
HGEXPORT HGBool HGAPI HGLib_CloseDevice(HGLibDevice device);
/* 设置设备参数 */
-HGEXPORT HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, const HGChar *option, const HGVoid *data);
+HGEXPORT HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, HGUInt option, const HGVoid *data);
/* 获取设备参数 */
-HGEXPORT HGLibDeviceGetParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt *count);
-HGEXPORT HGLibDeviceGetParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, const HGChar* option);
+HGEXPORT HGLibDeviceParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt *count);
+HGEXPORT HGLibDeviceParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, HGUInt option);
/* 销毁设备参数 */
-HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceGetParamGroup* paramGroup, HGUInt count);
-HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceGetParam* param);
+HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count);
+HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceParam* param);
/* 重置设备参数 */
HGEXPORT HGBool HGAPI HGLib_ResetDeviceParam(HGLibDevice device);
diff --git a/sdk/scannerlib/HGScannerLibOption.h b/sdk/scannerlib/HGScannerLibOption.h
deleted file mode 100644
index c5303356..00000000
--- a/sdk/scannerlib/HGScannerLibOption.h
+++ /dev/null
@@ -1,327 +0,0 @@
-#ifndef __HGSCANNERLIBOPTION_H__
-#define __HGSCANNERLIBOPTION_H__
-
-// "多流输出"
-#define HGLIB_OPTION_NAME_DLSC "is-multiout"
-
-// "多流输出类型"
-#define HGLIB_OPTION_NAME_DLSCLX "multiout-type"
-// "无"
-#define HGLIB_OPTION_VALUE_DLSCLX_W "\346\227\240"
-// "彩色+灰度+黑白"
-#define HGLIB_OPTION_VALUE_DLSCLX_CS_HD_HB "\345\275\251\350\211\262+\347\201\260\345\272\246+\351\273\221\347\231\275"
-// "彩色+灰度"
-#define HGLIB_OPTION_VALUE_DLSCLX_CS_HD "\345\275\251\350\211\262+\347\201\260\345\272\246"
-// "彩色+黑白"
-#define HGLIB_OPTION_VALUE_DLSCLX_CS_HB "\345\275\251\350\211\262+\351\273\221\347\231\275"
-// "灰度+黑白"
-#define HGLIB_OPTION_VALUE_DLSCLX_HD_HB "\347\201\260\345\272\246+\351\273\221\347\231\275"
-
-// "颜色模式"
-#define HGLIB_OPTION_NAME_YSMS "mode"
-// "24位彩色"
-#define HGLIB_OPTION_VALUE_YSMS_24WCS "24\344\275\215\345\275\251\350\211\262"
-// "256级灰度"
-#define HGLIB_OPTION_VALUE_YSMS_256JHD "256\347\272\247\347\201\260\345\272\246"
-// "黑白"
-#define HGLIB_OPTION_VALUE_YSMS_HB "\351\273\221\347\231\275"
-// "颜色自动识别"
-#define HGLIB_OPTION_VALUE_YSMS_YSZDSB "\351\242\234\350\211\262\350\207\252\345\212\250\350\257\206\345\210\253"
-
-// "黑白图像阈值"
-#define HGLIB_OPTION_NAME_HBTXYZ "binary-threshold"
-
-// "灰度或黑白图像 - 除色"
-#define HGLIB_OPTION_NAME_HDHHBTX_CS "filter"
-// "不除色"
-#define HGLIB_OPTION_VALUE_HDHHBTX_CS_BCS "\344\270\215\351\231\244\350\211\262"
-// "除红色"
-#define HGLIB_OPTION_VALUE_HDHHBTX_CS_CHS "\351\231\244\347\272\242\350\211\262"
-// "除绿色"
-#define HGLIB_OPTION_VALUE_HDHHBTX_CS_CLS "\351\231\244\347\273\277\350\211\262"
-// "除蓝色"
-#define HGLIB_OPTION_VALUE_HDHHBTX_CS_CHULANSE "\351\231\244\350\223\235\350\211\262"
-// "红色增强"
-#define HGLIB_OPTION_VALUE_HDHHBTX_CS_HSZQ "\347\272\242\350\211\262\345\242\236\345\274\272"
-// "绿色增强"
-#define HGLIB_OPTION_VALUE_HDHHBTX_CS_LSZQ "\347\273\277\350\211\262\345\242\236\345\274\272"
-// "蓝色增强"
-#define HGLIB_OPTION_VALUE_HDHHBTX_CS_LANSEZENGQIANG "\350\223\235\350\211\262\345\242\236\345\274\272"
-
-// "24位彩色图像 - 多流输出除红"
-#define HGLIB_OPTION_NAME_24WCSTX_DLSCCH "is-rid-multiout-red"
-
-// "24位彩色图像 - 答题卡除红"
-#define HGLIB_OPTION_NAME_24WCSTX_DTKCH "is-rid-answer-sheet-red"
-
-// "背景移除"
-#define HGLIB_OPTION_NAME_BJYC "is-erase-bkg"
-
-// "背景色彩浮动范围"
-#define HGLIB_OPTION_NAME_BJSCFDFW "bkg-color-range"
-
-// "锐化与模糊"
-#define HGLIB_OPTION_NAME_RHYMH "sharpen"
-// "无"
-#define HGLIB_OPTION_VALUE_RHYMH_W "\346\227\240"
-// "锐化"
-#define HGLIB_OPTION_VALUE_RHYMH_RH "\351\224\220\345\214\226"
-// "进一步锐化"
-#define HGLIB_OPTION_VALUE_RHYMH_JYBRH "\350\277\233\344\270\200\346\255\245\351\224\220\345\214\226"
-// "模糊"
-#define HGLIB_OPTION_VALUE_RHYMH_MH "\346\250\241\347\263\212"
-// "进一步模糊"
-#define HGLIB_OPTION_VALUE_RHYMH_JYBMH "\350\277\233\344\270\200\346\255\245\346\250\241\347\263\212"
-
-// "去除摩尔纹"
-#define HGLIB_OPTION_NAME_QCMW "is-rid-morr"
-
-// "除网纹"
-#define HGLIB_OPTION_NAME_CWW "is-rid-grid"
-
-// "错误扩散"
-#define HGLIB_OPTION_NAME_CWKS "is-err-extension"
-
-// "黑白图像噪点优化"
-#define HGLIB_OPTION_NAME_HBTXZDYH "is-noise-optimize"
-
-// "噪点优化尺寸"
-#define HGLIB_OPTION_NAME_ZDYHCC "noise-size"
-
-// "纸张尺寸"
-#define HGLIB_OPTION_NAME_ZZCC "paper"
-// "A3"
-#define HGLIB_OPTION_VALUE_ZZCC_A3 "A3"
-// "8开"
-#define HGLIB_OPTION_VALUE_ZZCC_8K "8\345\274\200"
-// "A4"
-#define HGLIB_OPTION_VALUE_ZZCC_A4 "A4"
-// "A4横向"
-#define HGLIB_OPTION_VALUE_ZZCC_A4HX "A4\346\250\252\345\220\221"
-// "16开"
-#define HGLIB_OPTION_VALUE_ZZCC_16K "16\345\274\200"
-// "16开横向"
-#define HGLIB_OPTION_VALUE_ZZCC_16KHX "16\345\274\200\346\250\252\345\220\221"
-// "A5"
-#define HGLIB_OPTION_VALUE_ZZCC_A5 "A5"
-// "A5横向"
-#define HGLIB_OPTION_VALUE_ZZCC_A5HX "A5\346\250\252\345\220\221"
-// "A6"
-#define HGLIB_OPTION_VALUE_ZZCC_A6 "A6"
-// "A6横向"
-#define HGLIB_OPTION_VALUE_ZZCC_A6HX "A6\346\250\252\345\220\221"
-// "B4"
-#define HGLIB_OPTION_VALUE_ZZCC_B4 "B4"
-// "B5"
-#define HGLIB_OPTION_VALUE_ZZCC_B5 "B5"
-// "B5横向"
-#define HGLIB_OPTION_VALUE_ZZCC_B5HX "B5\346\250\252\345\220\221"
-// "B6"
-#define HGLIB_OPTION_VALUE_ZZCC_B6 "B6"
-// "B6横向"
-#define HGLIB_OPTION_VALUE_ZZCC_B6HX "B6\346\250\252\345\220\221"
-// "Letter"
-#define HGLIB_OPTION_VALUE_ZZCC_Letter "Letter"
-// "Letter横向"
-#define HGLIB_OPTION_VALUE_ZZCC_LetterHX "Letter\346\250\252\345\220\221"
-// "Double Letter"
-#define HGLIB_OPTION_VALUE_ZZCC_DoubleLetter "Double Letter"
-// "LEGAL"
-#define HGLIB_OPTION_VALUE_ZZCC_LEGAL "LEGAL"
-// "匹配原始尺寸"
-#define HGLIB_OPTION_VALUE_ZZCC_PPYSCC "\345\214\271\351\205\215\345\216\237\345\247\213\345\260\272\345\257\270"
-// "最大扫描尺寸自动裁切"
-#define HGLIB_OPTION_VALUE_ZZCC_ZDSMCCZDCQ "\346\234\200\345\244\247\346\211\253\346\217\217\345\260\272\345\257\270\350\207\252\345\212\250\350\243\201\345\210\207"
-// "最大扫描尺寸"
-#define HGLIB_OPTION_VALUE_ZZCC_ZDSMCC "\346\234\200\345\244\247\346\211\253\346\217\217\345\260\272\345\257\270"
-// "三联试卷"
-#define HGLIB_OPTION_VALUE_ZZCC_SLSJ "\344\270\211\350\201\224\350\257\225\345\215\267"
-
-// "自定义扫描区域"
-#define HGLIB_OPTION_NAME_ZDYSMQY "is-custom-area"
-
-// "扫描区域左侧(mm)"
-#define HGLIB_OPTION_NAME_SMQYZCmm "tl-x"
-
-// "扫描区域右侧(mm)"
-#define HGLIB_OPTION_NAME_SMQYYCmm "br-x"
-
-// "扫描区域上侧(mm)"
-#define HGLIB_OPTION_NAME_SMQYSCmm "tl-y"
-
-// "扫描区域下侧(mm)"
-#define HGLIB_OPTION_NAME_SMQYXCmm "br-y"
-
-// "尺寸检测"
-#define HGLIB_OPTION_NAME_CCJC "is-size-check"
-
-// "扫描页面"
-#define HGLIB_OPTION_NAME_SMYM "page"
-// "单面"
-#define HGLIB_OPTION_VALUE_SMYM_DM "\345\215\225\351\235\242"
-// "双面"
-#define HGLIB_OPTION_VALUE_SMYM_SM "\345\217\214\351\235\242"
-// "跳过空白页(通用)"
-#define HGLIB_OPTION_VALUE_SMYM_TGKBYTY "\350\267\263\350\277\207\347\251\272\347\231\275\351\241\265\357\274\210\351\200\232\347\224\250\357\274\211"
-// "跳过空白页(发票纸)"
-#define HGLIB_OPTION_VALUE_SMYM_TGKBYFPZ "\350\267\263\350\277\207\347\251\272\347\231\275\351\241\265\357\274\210\345\217\221\347\245\250\347\272\270\357\274\211"
-// "对折"
-#define HGLIB_OPTION_VALUE_SMYM_DZ "\345\257\271\346\212\230"
-
-// "跳过空白页灵敏度"
-#define HGLIB_OPTION_NAME_TGKBYLMD "blank-sensitivity"
-
-// "分纸强度"
-#define HGLIB_OPTION_NAME_FZQD "feed-strength"
-
-// "休眠时间"
-#define HGLIB_OPTION_NAME_XMSJ "time-to-sleep"
-
-// "分辨率"
-#define HGLIB_OPTION_NAME_FBL "resolution"
-
-// "画质"
-#define HGLIB_OPTION_NAME_HZ "image-quality"
-// "无"
-#define HGLIB_OPTION_VALUE_HZ_W "\346\227\240"
-// "速度优先"
-#define HGLIB_OPTION_VALUE_HZ_SDYX "\351\200\237\345\272\246\344\274\230\345\205\210"
-// "画质优先"
-#define HGLIB_OPTION_VALUE_HZ_HZYX "\347\224\273\350\264\250\344\274\230\345\205\210"
-
-// "交换正反面"
-#define HGLIB_OPTION_NAME_JHZFM "is-exchange"
-
-// "图像拆分"
-#define HGLIB_OPTION_NAME_TXCF "is-split"
-
-// "自动纠偏"
-#define HGLIB_OPTION_NAME_ZDJP "is-anti-skew"
-
-// "启用色调曲线"
-#define HGLIB_OPTION_NAME_QYSDQX "is-custom-gamma"
-
-// "亮度值"
-#define HGLIB_OPTION_NAME_LDZ "brightness"
-
-// "对比度"
-#define HGLIB_OPTION_NAME_DBD "contrast"
-
-// "伽马值"
-#define HGLIB_OPTION_NAME_GMZ "gamma"
-
-// "照片模式"
-#define HGLIB_OPTION_NAME_ZPMS "is-photo-mode"
-
-// "消除黑框"
-#define HGLIB_OPTION_NAME_XCHK "is-erase-balck-frame"
-
-// "深色样张"
-#define HGLIB_OPTION_NAME_SSYZ "is-dark-sample"
-
-// "阈值"
-#define HGLIB_OPTION_NAME_YZ "threshold"
-
-// "背景抗噪等级"
-#define HGLIB_OPTION_NAME_BJKZDJ "anti-noise-level"
-
-// "边缘缩进"
-#define HGLIB_OPTION_NAME_BYSJ "margin"
-
-// "背景填充方式"
-#define HGLIB_OPTION_NAME_BJTCFS "bkg-fill-mode"
-// "凸多边形"
-#define HGLIB_OPTION_VALUE_BJTCFS_TDBX "\345\207\270\345\244\232\350\276\271\345\275\242"
-// "凹多边形"
-#define HGLIB_OPTION_VALUE_BJTCFS_ADBX "\345\207\271\345\244\232\350\276\271\345\275\242"
-
-// "防止渗透"
-#define HGLIB_OPTION_NAME_FZST "is-anti-permeate"
-
-// "防止渗透等级"
-#define HGLIB_OPTION_NAME_FZSTDJ "permeate-level"
-// "弱"
-#define HGLIB_OPTION_VALUE_FZSTDJ_R "\345\274\261"
-// "较弱"
-#define HGLIB_OPTION_VALUE_FZSTDJ_JR "\350\276\203\345\274\261"
-// "一般"
-#define HGLIB_OPTION_VALUE_FZSTDJ_YB "\344\270\200\350\210\254"
-// "较强"
-#define HGLIB_OPTION_VALUE_FZSTDJ_JQ "\350\276\203\345\274\272"
-// "强"
-#define HGLIB_OPTION_VALUE_FZSTDJ_Q "\345\274\272"
-
-// "穿孔移除"
-#define HGLIB_OPTION_NAME_CKYC "is-rid-hole"
-
-// #"穿孔搜索范围占幅面比例"
-#define HGLIB_OPTION_NAME_CKSSFWZFMBL "search-hole-range"
-
-// "色彩填充"
-#define HGLIB_OPTION_NAME_SCTC "is-fill-color"
-
-// "超声波检测"
-#define HGLIB_OPTION_NAME_CSBJC "is-ultrosonic"
-
-// "双张图片处理"
-#define HGLIB_OPTION_NAME_SZTPCL "double-feed"
-// "丢弃图像并停止扫描"
-#define HGLIB_OPTION_VALUE_SZTPCL_DQTXBTZSM "\344\270\242\345\274\203\345\233\276\345\203\217\345\271\266\345\201\234\346\255\242\346\211\253\346\217\217"
-// "丢弃图像并继续扫描"
-#define HGLIB_OPTION_VALUE_SZTPCL_DQTXBJXSM "\344\270\242\345\274\203\345\233\276\345\203\217\345\271\266\347\273\247\347\273\255\346\211\253\346\217\217"
-// "上传图像并停止扫描"
-#define HGLIB_OPTION_VALUE_SZTPCL_SCTXBTZSM "\344\270\212\344\274\240\345\233\276\345\203\217\345\271\266\345\201\234\346\255\242\346\211\253\346\217\217"
-// "上传图像并继续扫描"
-#define HGLIB_OPTION_VALUE_SZTPCL_SCTXBJXSM "\344\270\212\344\274\240\345\233\276\345\203\217\345\271\266\347\273\247\347\273\255\346\211\253\346\217\217"
-
-// "装订检测"
-#define HGLIB_OPTION_NAME_ZDJC "is-staple"
-
-// "扫描张数"
-#define HGLIB_OPTION_NAME_SMZS "scan-mode"
-// "连续扫描"
-#define HGLIB_OPTION_VALUE_SMZS_LXSM "\350\277\236\347\273\255\346\211\253\346\217\217"
-// "扫描指定张数"
-#define HGLIB_OPTION_VALUE_SMZS_SMZDZS "\346\211\253\346\217\217\346\214\207\345\256\232\345\274\240\346\225\260"
-
-// "扫描数量"
-#define HGLIB_OPTION_NAME_SMSL "scan-count"
-
-// "文稿方向"
-#define HGLIB_OPTION_NAME_WGFX "direction"
-// "0°"
-#define HGLIB_OPTION_VALUE_WGFX_0 "0\302\260"
-// "90°"
-#define HGLIB_OPTION_VALUE_WGFX_90 "90\302\260"
-// "180°"
-#define HGLIB_OPTION_VALUE_WGFX_180 "180\302\260"
-// "-90°"
-#define HGLIB_OPTION_VALUE_WGFX__90 "-90\302\260"
-// "自动文本方向识别°"
-#define HGLIB_OPTION_VALUE_WGFX_ZDWBFXSB "\350\207\252\345\212\250\346\226\207\346\234\254\346\226\271\345\220\221\350\257\206\345\210\253\302\260"
-
-// "背面旋转180°"
-#define HGLIB_OPTION_NAME_BMXZ180 "is-rotate-bkg-180"
-
-// "折角检测"
-#define HGLIB_OPTION_NAME_ZJJC "is-check-dog-ear"
-
-// "折角大小"
-#define HGLIB_OPTION_NAME_ZJDX "dog-ear-size"
-
-// "歪斜检测"
-#define HGLIB_OPTION_NAME_WXJC "is-check-askew"
-
-// "歪斜容忍度"
-#define HGLIB_OPTION_NAME_WXRRD "askew-range"
-
-// 自动搓纸强度
-#define HGLIB_OPTION_NAME_ZDCZQD "is-auto-strength"
-
-// 搓纸阈值
-#define HGLIB_OPTION_NAME_CZYZ "feed-strength-value"
-
-// 待纸扫描
-#define HGLIB_OPTION_NAME_DZSM "is-wait-scan"
-
-#endif /* __HGSCANNERLIBOPTION_H__ */
\ No newline at end of file