HGScannerLib: 将配置字符串改为整型
This commit is contained in:
parent
f3a625e170
commit
61748ca5c3
|
@ -42,7 +42,6 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\..\..\sdk\scannerlib\HGLibDeviceImpl.hpp" />
|
<ClInclude Include="..\..\..\sdk\scannerlib\HGLibDeviceImpl.hpp" />
|
||||||
<ClInclude Include="..\..\..\sdk\scannerlib\HGScannerLib.h" />
|
<ClInclude Include="..\..\..\sdk\scannerlib\HGScannerLib.h" />
|
||||||
<ClInclude Include="..\..\..\sdk\scannerlib\HGScannerLibOption.h" />
|
|
||||||
<ClInclude Include="..\..\..\utility\HGString.h" />
|
<ClInclude Include="..\..\..\utility\HGString.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,6 +4,153 @@
|
||||||
#include "base/HGImage.h"
|
#include "base/HGImage.h"
|
||||||
#include "HGString.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
|
struct DeviceParam
|
||||||
{
|
{
|
||||||
DeviceParam()
|
DeviceParam()
|
||||||
|
@ -205,10 +352,14 @@ HGBool HGLibDeviceImpl::Close()
|
||||||
return HGTRUE;
|
return HGTRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGBool HGLibDeviceImpl::SetParam(const HGChar* option, const HGVoid* data)
|
HGBool HGLibDeviceImpl::SetParam(HGUInt option, const HGVoid* data)
|
||||||
{
|
{
|
||||||
assert(NULL != m_devHandle);
|
assert(NULL != m_devHandle);
|
||||||
if (NULL == option || NULL == data)
|
if (NULL == data)
|
||||||
|
return HGFALSE;
|
||||||
|
|
||||||
|
const char *optionName = GetOptionName(option);
|
||||||
|
if (NULL == optionName)
|
||||||
return HGFALSE;
|
return HGFALSE;
|
||||||
|
|
||||||
HGBool ret = HGFALSE;
|
HGBool ret = HGFALSE;
|
||||||
|
@ -220,18 +371,21 @@ HGBool HGLibDeviceImpl::SetParam(const HGChar* option, const HGVoid* data)
|
||||||
if (NULL == desp)
|
if (NULL == desp)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const char* name = desp->name;
|
const char* name = desp->title;
|
||||||
while (' ' == *name)
|
while (' ' == *name)
|
||||||
++name;
|
++name;
|
||||||
|
|
||||||
if (0 == strcmp(option, name))
|
if (0 == strcmp(optionName, name))
|
||||||
{
|
{
|
||||||
if (SANE_TYPE_STRING == desp->type)
|
if (SANE_TYPE_STRING == desp->type)
|
||||||
{
|
{
|
||||||
SANE_Char* value = (SANE_Char*)(HGChar*)data;
|
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))
|
if (SANE_STATUS_GOOD == sane_control_option(m_devHandle, i, SANE_ACTION_SET_VALUE, value, NULL))
|
||||||
ret = HGTRUE;
|
ret = HGTRUE;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (SANE_TYPE_INT == desp->type)
|
else if (SANE_TYPE_INT == desp->type)
|
||||||
{
|
{
|
||||||
SANE_Int value = (SANE_Int)(*(HGInt*)data);
|
SANE_Int value = (SANE_Int)(*(HGInt*)data);
|
||||||
|
@ -258,7 +412,7 @@ HGBool HGLibDeviceImpl::SetParam(const HGChar* option, const HGVoid* data)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
|
HGLibDeviceParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
|
||||||
{
|
{
|
||||||
assert(NULL != m_devHandle);
|
assert(NULL != m_devHandle);
|
||||||
if (NULL == count)
|
if (NULL == count)
|
||||||
|
@ -274,7 +428,7 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
|
||||||
if (NULL == desp)
|
if (NULL == desp)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const char* name = desp->name;
|
const char* name = desp->title;
|
||||||
while (' ' == *name)
|
while (' ' == *name)
|
||||||
++name;
|
++name;
|
||||||
|
|
||||||
|
@ -291,12 +445,12 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
|
||||||
|
|
||||||
DeviceParam devParam;
|
DeviceParam devParam;
|
||||||
devParam.option = name;
|
devParam.option = name;
|
||||||
devParam.valueType = HGLIB_DEVPARAM_TYPE_STRING;
|
devParam.valueType = HGLIB_OPTION_VALUETYPE_ENUM;
|
||||||
devParam.stringValue = value;
|
devParam.stringValue = value;
|
||||||
|
|
||||||
assert(SANE_CONSTRAINT_STRING_LIST == desp->constraint_type);
|
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;
|
const SANE_String_Const* p = desp->constraint.string_list;
|
||||||
while (NULL != *p)
|
while (NULL != *p)
|
||||||
{
|
{
|
||||||
|
@ -314,12 +468,12 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
|
||||||
|
|
||||||
DeviceParam devParam;
|
DeviceParam devParam;
|
||||||
devParam.option = name;
|
devParam.option = name;
|
||||||
devParam.valueType = HGLIB_DEVPARAM_TYPE_INT;
|
devParam.valueType = HGLIB_OPTION_VALUETYPE_INT;
|
||||||
devParam.intValue = (int)value;
|
devParam.intValue = (int)value;
|
||||||
|
|
||||||
if (SANE_CONSTRAINT_WORD_LIST == desp->constraint_type)
|
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;
|
const SANE_Word* p = desp->constraint.word_list;
|
||||||
for (SANE_Int i = 0; i < p[0]; ++i)
|
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)
|
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.intValueMin = desp->constraint.range->min;
|
||||||
devParam.intValueMax = desp->constraint.range->max;
|
devParam.intValueMax = desp->constraint.range->max;
|
||||||
}
|
}
|
||||||
|
@ -343,12 +497,12 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
|
||||||
|
|
||||||
DeviceParam devParam;
|
DeviceParam devParam;
|
||||||
devParam.option = name;
|
devParam.option = name;
|
||||||
devParam.valueType = HGLIB_DEVPARAM_TYPE_DOUBLE;
|
devParam.valueType = HGLIB_OPTION_VALUETYPE_DOUBLE;
|
||||||
devParam.doubleValue = SANE_UNFIX(value);
|
devParam.doubleValue = SANE_UNFIX(value);
|
||||||
|
|
||||||
if (SANE_CONSTRAINT_WORD_LIST == desp->constraint_type)
|
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;
|
const SANE_Word* p = desp->constraint.word_list;
|
||||||
for (SANE_Int i = 0; i < p[0]; ++i)
|
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)
|
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.doubleValueMin = SANE_UNFIX(desp->constraint.range->min);
|
||||||
devParam.doubleValueMax = SANE_UNFIX(desp->constraint.range->max);
|
devParam.doubleValueMax = SANE_UNFIX(desp->constraint.range->max);
|
||||||
}
|
}
|
||||||
|
@ -372,10 +526,10 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
|
||||||
|
|
||||||
DeviceParam devParam;
|
DeviceParam devParam;
|
||||||
devParam.option = name;
|
devParam.option = name;
|
||||||
devParam.valueType = HGLIB_DEVPARAM_TYPE_BOOL;
|
devParam.valueType = HGLIB_OPTION_VALUETYPE_BOOL;
|
||||||
devParam.boolValue = (bool)value;
|
devParam.boolValue = (bool)value;
|
||||||
|
|
||||||
devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_NULL;
|
devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_NULL;
|
||||||
|
|
||||||
assert(!devParams.empty());
|
assert(!devParams.empty());
|
||||||
devParams[devParams.size() - 1].devParams.push_back(devParam);
|
devParams[devParams.size() - 1].devParams.push_back(devParam);
|
||||||
|
@ -383,44 +537,34 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
|
||||||
}
|
}
|
||||||
|
|
||||||
*count = (HGUInt)devParams.size();
|
*count = (HGUInt)devParams.size();
|
||||||
HGLibDeviceGetParamGroup* paramGroup = (HGLibDeviceGetParamGroup*)malloc((*count) * sizeof(HGLibDeviceGetParamGroup));
|
HGLibDeviceParamGroup* paramGroup = (HGLibDeviceParamGroup*)malloc((*count) * sizeof(HGLibDeviceParamGroup));
|
||||||
if (NULL != paramGroup)
|
if (NULL != paramGroup)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < (int)devParams.size(); ++i)
|
for (int i = 0; i < (int)devParams.size(); ++i)
|
||||||
{
|
{
|
||||||
paramGroup[i].groupName = (HGChar *)malloc(devParams[i].groupName.size() + 1);
|
paramGroup[i].group = GetGroupName(devParams[i].groupName.c_str());
|
||||||
if (NULL != paramGroup[i].groupName)
|
|
||||||
strcpy(paramGroup[i].groupName, devParams[i].groupName.c_str());
|
|
||||||
|
|
||||||
paramGroup[i].paramCount = (HGUInt)devParams[i].devParams.size();
|
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)
|
if (NULL != paramGroup[i].param)
|
||||||
{
|
{
|
||||||
for (int j = 0; j < (int)devParams[i].devParams.size(); ++j)
|
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];
|
DeviceParam& src = devParams[i].devParams[j];
|
||||||
|
|
||||||
dest.option = (HGChar *)malloc(src.option.size() + 1);
|
dest.option = GetOptionName(src.option.c_str());
|
||||||
if (NULL != dest.option)
|
|
||||||
strcpy(dest.option, src.option.c_str());
|
|
||||||
|
|
||||||
dest.type = src.valueType;
|
dest.type = src.valueType;
|
||||||
if (HGLIB_DEVPARAM_TYPE_INT == dest.type)
|
if (HGLIB_OPTION_VALUETYPE_INT == dest.type)
|
||||||
dest.intValue = src.intValue;
|
dest.intValue = src.intValue;
|
||||||
else if (HGLIB_DEVPARAM_TYPE_DOUBLE == dest.type)
|
else if (HGLIB_OPTION_VALUETYPE_DOUBLE == dest.type)
|
||||||
dest.doubleValue = src.doubleValue;
|
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;
|
dest.boolValue = (HGBool)src.boolValue;
|
||||||
else if (HGLIB_DEVPARAM_TYPE_STRING == dest.type)
|
else if (HGLIB_OPTION_VALUETYPE_ENUM == dest.type)
|
||||||
{
|
dest.enumValue = GetOptionEnumValue(src.stringValue.c_str());
|
||||||
dest.stringValue = (HGChar *)malloc(src.stringValue.size() + 1);
|
|
||||||
if (NULL != dest.stringValue)
|
|
||||||
strcpy(dest.stringValue, src.stringValue.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
dest.rangeType = src.rangeType;
|
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.count = (HGUInt)src.intValueList.size();
|
||||||
dest.intValueList.value = (HGInt *)malloc(dest.intValueList.count * sizeof(HGInt));
|
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.count = (HGUInt)src.doubleValueList.size();
|
||||||
dest.doubleValueList.value = (HGDouble*)malloc(dest.doubleValueList.count * sizeof(HGDouble));
|
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.minValue = src.intValueMin;
|
||||||
dest.intValueRange.maxValue = src.intValueMax;
|
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.minValue = src.doubleValueMin;
|
||||||
dest.doubleValueRange.maxValue = src.doubleValueMax;
|
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.enumValueList.count = (HGUInt)src.stringValueList.size();
|
||||||
dest.stringValueList.value = (HGChar **)malloc(dest.stringValueList.count * sizeof(HGChar *));
|
dest.enumValueList.value = (HGUInt*)malloc(dest.enumValueList.count * sizeof(HGUInt));
|
||||||
if (NULL != dest.stringValueList.value)
|
if (NULL != dest.enumValueList.value)
|
||||||
{
|
{
|
||||||
for (int k = 0; k < (int)src.stringValueList.size(); ++k)
|
for (int k = 0; k < (int)src.stringValueList.size(); ++k)
|
||||||
{
|
{
|
||||||
dest.stringValueList.value[k] = (HGChar *)malloc(src.stringValueList[k].size() + 1);
|
dest.enumValueList.value[k] = GetOptionEnumValue(src.stringValueList[k].c_str());
|
||||||
if (NULL != dest.stringValueList.value[k])
|
|
||||||
strcpy(dest.stringValueList.value[k], src.stringValueList[k].c_str());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -476,13 +618,14 @@ HGLibDeviceGetParamGroup* HGLibDeviceImpl::GetParamGroupList(HGUInt* count)
|
||||||
return paramGroup;
|
return paramGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
|
HGLibDeviceParam* HGLibDeviceImpl::GetParam(HGUInt option)
|
||||||
{
|
{
|
||||||
assert(NULL != m_devHandle);
|
assert(NULL != m_devHandle);
|
||||||
if (NULL == option)
|
const char* optionName = GetOptionName(option);
|
||||||
|
if (NULL == optionName)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
HGLibDeviceGetParam* param = NULL;
|
HGLibDeviceParam* param = NULL;
|
||||||
SANE_Int num_dev_options = 0;
|
SANE_Int num_dev_options = 0;
|
||||||
sane_control_option(m_devHandle, 0, SANE_ACTION_GET_VALUE, &num_dev_options, NULL);
|
sane_control_option(m_devHandle, 0, SANE_ACTION_GET_VALUE, &num_dev_options, NULL);
|
||||||
for (int i = 1; i < num_dev_options; ++i)
|
for (int i = 1; i < num_dev_options; ++i)
|
||||||
|
@ -491,11 +634,11 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
|
||||||
if (NULL == desp)
|
if (NULL == desp)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const char* name = desp->name;
|
const char* name = desp->title;
|
||||||
while (' ' == *name)
|
while (' ' == *name)
|
||||||
++name;
|
++name;
|
||||||
|
|
||||||
if (0 == strcmp(option, name))
|
if (0 == strcmp(optionName, name))
|
||||||
{
|
{
|
||||||
DeviceParam devParam;
|
DeviceParam devParam;
|
||||||
devParam.option = name;
|
devParam.option = name;
|
||||||
|
@ -505,12 +648,12 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
|
||||||
char value[256] = { 0 };
|
char value[256] = { 0 };
|
||||||
sane_control_option(m_devHandle, i, SANE_ACTION_GET_VALUE, value, NULL);
|
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;
|
devParam.stringValue = value;
|
||||||
|
|
||||||
assert(SANE_CONSTRAINT_STRING_LIST == desp->constraint_type);
|
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;
|
const SANE_String_Const* p = desp->constraint.string_list;
|
||||||
while (NULL != *p)
|
while (NULL != *p)
|
||||||
{
|
{
|
||||||
|
@ -523,12 +666,12 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
|
||||||
SANE_Int value = 0;
|
SANE_Int value = 0;
|
||||||
sane_control_option(m_devHandle, i, SANE_ACTION_GET_VALUE, &value, NULL);
|
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;
|
devParam.intValue = (int)value;
|
||||||
|
|
||||||
if (SANE_CONSTRAINT_WORD_LIST == desp->constraint_type)
|
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;
|
const SANE_Word* p = desp->constraint.word_list;
|
||||||
for (SANE_Int i = 0; i < p[0]; ++i)
|
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)
|
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.intValueMin = desp->constraint.range->min;
|
||||||
devParam.intValueMax = desp->constraint.range->max;
|
devParam.intValueMax = desp->constraint.range->max;
|
||||||
}
|
}
|
||||||
|
@ -547,12 +690,12 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
|
||||||
SANE_Word value = 0;
|
SANE_Word value = 0;
|
||||||
sane_control_option(m_devHandle, i, SANE_ACTION_GET_VALUE, &value, NULL);
|
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);
|
devParam.doubleValue = SANE_UNFIX(value);
|
||||||
|
|
||||||
if (SANE_CONSTRAINT_WORD_LIST == desp->constraint_type)
|
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;
|
const SANE_Word* p = desp->constraint.word_list;
|
||||||
for (SANE_Int i = 0; i < p[0]; ++i)
|
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)
|
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.doubleValueMin = SANE_UNFIX(desp->constraint.range->min);
|
||||||
devParam.doubleValueMax = SANE_UNFIX(desp->constraint.range->max);
|
devParam.doubleValueMax = SANE_UNFIX(desp->constraint.range->max);
|
||||||
}
|
}
|
||||||
|
@ -571,35 +714,28 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
|
||||||
SANE_Bool value = 0;
|
SANE_Bool value = 0;
|
||||||
sane_control_option(m_devHandle, i, SANE_ACTION_GET_VALUE, &value, NULL);
|
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.boolValue = (bool)value;
|
||||||
devParam.rangeType = HGLIB_DEVPARAM_RANGETYPE_NULL;
|
devParam.rangeType = HGLIB_OPTION_VALUERANGETYPE_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(0 != devParam.valueType);
|
assert(0 != devParam.valueType);
|
||||||
param = (HGLibDeviceGetParam*)malloc(sizeof(HGLibDeviceGetParam));
|
param = (HGLibDeviceParam*)malloc(sizeof(HGLibDeviceParam));
|
||||||
if (NULL != param)
|
if (NULL != param)
|
||||||
{
|
{
|
||||||
param->option = (HGChar*)malloc(devParam.option.size() + 1);
|
param->option = GetOptionName(devParam.option.c_str());
|
||||||
if (NULL != param->option)
|
|
||||||
strcpy(param->option, devParam.option.c_str());
|
|
||||||
|
|
||||||
param->type = devParam.valueType;
|
param->type = devParam.valueType;
|
||||||
if (HGLIB_DEVPARAM_TYPE_INT == param->type)
|
if (HGLIB_OPTION_VALUETYPE_INT == param->type)
|
||||||
param->intValue = devParam.intValue;
|
param->intValue = devParam.intValue;
|
||||||
else if (HGLIB_DEVPARAM_TYPE_DOUBLE == param->type)
|
else if (HGLIB_OPTION_VALUETYPE_DOUBLE == param->type)
|
||||||
param->doubleValue = devParam.doubleValue;
|
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;
|
param->boolValue = (HGBool)devParam.boolValue;
|
||||||
else if (HGLIB_DEVPARAM_TYPE_STRING == param->type)
|
else if (HGLIB_OPTION_VALUETYPE_ENUM == param->type)
|
||||||
{
|
param->enumValue = GetOptionEnumValue(devParam.stringValue.c_str());
|
||||||
param->stringValue = (HGChar*)malloc(devParam.stringValue.size() + 1);
|
|
||||||
if (NULL != param->stringValue)
|
|
||||||
strcpy(param->stringValue, devParam.stringValue.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
param->rangeType = devParam.rangeType;
|
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.count = (HGUInt)devParam.intValueList.size();
|
||||||
param->intValueList.value = (HGInt*)malloc(param->intValueList.count * sizeof(HGInt));
|
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.count = (HGUInt)devParam.doubleValueList.size();
|
||||||
param->doubleValueList.value = (HGDouble*)malloc(param->doubleValueList.count * sizeof(HGDouble));
|
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.minValue = devParam.intValueMin;
|
||||||
param->intValueRange.maxValue = devParam.intValueMax;
|
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.minValue = devParam.doubleValueMin;
|
||||||
param->doubleValueRange.maxValue = devParam.doubleValueMax;
|
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->enumValueList.count = (HGUInt)devParam.stringValueList.size();
|
||||||
param->stringValueList.value = (HGChar**)malloc(param->stringValueList.count * sizeof(HGChar*));
|
param->enumValueList.value = (HGUInt*)malloc(param->enumValueList.count * sizeof(HGUInt));
|
||||||
if (NULL != param->stringValueList.value)
|
if (NULL != param->enumValueList.value)
|
||||||
{
|
{
|
||||||
for (int k = 0; k < (int)devParam.stringValueList.size(); ++k)
|
for (int k = 0; k < (int)devParam.stringValueList.size(); ++k)
|
||||||
{
|
{
|
||||||
param->stringValueList.value[k] = (HGChar*)malloc(devParam.stringValueList[k].size() + 1);
|
param->enumValueList.value[k] = GetOptionEnumValue(devParam.stringValueList[k].c_str());
|
||||||
if (NULL != param->stringValueList.value[k])
|
|
||||||
strcpy(param->stringValueList.value[k], devParam.stringValueList[k].c_str());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -656,7 +790,7 @@ HGLibDeviceGetParam* HGLibDeviceImpl::GetParam(const HGChar* option)
|
||||||
return param;
|
return param;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGBool HGLibDeviceImpl::ReleaseParamGroupList(HGLibDeviceGetParamGroup* paramGroup, HGUInt count)
|
HGBool HGLibDeviceImpl::ReleaseParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count)
|
||||||
{
|
{
|
||||||
if (NULL == paramGroup || 0 == count)
|
if (NULL == paramGroup || 0 == count)
|
||||||
{
|
{
|
||||||
|
@ -667,23 +801,14 @@ HGBool HGLibDeviceImpl::ReleaseParamGroupList(HGLibDeviceGetParamGroup* paramGro
|
||||||
{
|
{
|
||||||
for (HGUInt j = 0; j < paramGroup[i].paramCount; ++j)
|
for (HGUInt j = 0; j < paramGroup[i].paramCount; ++j)
|
||||||
{
|
{
|
||||||
free(paramGroup[i].param[j].option);
|
if (HGLIB_OPTION_VALUERANGETYPE_INTLIST == paramGroup[i].param[j].rangeType)
|
||||||
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)
|
|
||||||
free(paramGroup[i].param[j].intValueList.value);
|
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);
|
free(paramGroup[i].param[j].doubleValueList.value);
|
||||||
else if (HGLIB_DEVPARAM_RANGETYPE_STRINGLIST == paramGroup[i].param[j].rangeType)
|
else if (HGLIB_OPTION_VALUERANGETYPE_ENUMLIST == paramGroup[i].param[j].rangeType)
|
||||||
{
|
free(paramGroup[i].param[j].enumValueList.value);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
free(paramGroup[i].groupName);
|
|
||||||
free(paramGroup[i].param);
|
free(paramGroup[i].param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -691,27 +816,19 @@ HGBool HGLibDeviceImpl::ReleaseParamGroupList(HGLibDeviceGetParamGroup* paramGro
|
||||||
return HGTRUE;
|
return HGTRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
HGBool HGLibDeviceImpl::ReleaseParam(HGLibDeviceGetParam* param)
|
HGBool HGLibDeviceImpl::ReleaseParam(HGLibDeviceParam* param)
|
||||||
{
|
{
|
||||||
if (NULL == param)
|
if (NULL == param)
|
||||||
{
|
{
|
||||||
return HGFALSE;
|
return HGFALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(param->option);
|
if (HGLIB_OPTION_VALUERANGETYPE_INTLIST == param->rangeType)
|
||||||
if (HGLIB_DEVPARAM_TYPE_STRING == param->type)
|
|
||||||
free(param->stringValue);
|
|
||||||
|
|
||||||
if (HGLIB_DEVPARAM_RANGETYPE_INTLIST == param->rangeType)
|
|
||||||
free(param->intValueList.value);
|
free(param->intValueList.value);
|
||||||
else if (HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST == param->rangeType)
|
else if (HGLIB_OPTION_VALUERANGETYPE_DOUBLELIST == param->rangeType)
|
||||||
free(param->doubleValueList.value);
|
free(param->doubleValueList.value);
|
||||||
else if (HGLIB_DEVPARAM_RANGETYPE_STRINGLIST == param->rangeType)
|
else if (HGLIB_OPTION_VALUERANGETYPE_ENUMLIST == param->rangeType)
|
||||||
{
|
free(param->enumValueList.value);
|
||||||
for (HGUInt k = 0; k < param->stringValueList.count; ++k)
|
|
||||||
free(param->stringValueList.value[k]);
|
|
||||||
free(param->stringValueList.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
free(param);
|
free(param);
|
||||||
return HGTRUE;
|
return HGTRUE;
|
||||||
|
@ -800,6 +917,81 @@ HGBool HGLibDeviceImpl::StopScan()
|
||||||
return HGTRUE;
|
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)
|
int HGLibDeviceImpl::sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param)
|
||||||
{
|
{
|
||||||
switch (code)
|
switch (code)
|
||||||
|
|
|
@ -23,17 +23,23 @@ public:
|
||||||
|
|
||||||
static HGLibDeviceImpl* Open(const HGChar* deviceName);
|
static HGLibDeviceImpl* Open(const HGChar* deviceName);
|
||||||
HGBool Close();
|
HGBool Close();
|
||||||
HGBool SetParam(const HGChar* option, const HGVoid* data);
|
HGBool SetParam(HGUInt option, const HGVoid* data);
|
||||||
HGLibDeviceGetParamGroup* GetParamGroupList(HGUInt* count);
|
HGLibDeviceParamGroup* GetParamGroupList(HGUInt* count);
|
||||||
HGLibDeviceGetParam* GetParam(const HGChar* option);
|
HGLibDeviceParam* GetParam(HGUInt option);
|
||||||
static HGBool ReleaseParamGroupList(HGLibDeviceGetParamGroup* paramGroup, HGUInt count);
|
static HGBool ReleaseParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count);
|
||||||
static HGBool ReleaseParam(HGLibDeviceGetParam* param);
|
static HGBool ReleaseParam(HGLibDeviceParam* param);
|
||||||
HGBool ResetParam();
|
HGBool ResetParam();
|
||||||
HGBool StartScan(HGLibDeviceScanEventFunc eventFunc, HGPointer eventParam,
|
HGBool StartScan(HGLibDeviceScanEventFunc eventFunc, HGPointer eventParam,
|
||||||
HGLibDeviceScanImageFunc imageFunc, HGPointer imageParam);
|
HGLibDeviceScanImageFunc imageFunc, HGPointer imageParam);
|
||||||
HGBool StopScan();
|
HGBool StopScan();
|
||||||
|
|
||||||
private:
|
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);
|
static int sane_ex_callback(SANE_Handle hdev, int code, void* data, unsigned int* len, void* param);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -129,7 +129,7 @@ HGBool HGAPI HGLib_CloseDevice(HGLibDevice device)
|
||||||
return deviceImpl->Close();
|
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)
|
if (NULL == device)
|
||||||
{
|
{
|
||||||
|
@ -140,7 +140,7 @@ HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, const HGChar* option, cons
|
||||||
return deviceImpl->SetParam(option, data);
|
return deviceImpl->SetParam(option, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
HGLibDeviceGetParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt* count)
|
HGLibDeviceParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt* count)
|
||||||
{
|
{
|
||||||
if (NULL == device)
|
if (NULL == device)
|
||||||
{
|
{
|
||||||
|
@ -151,7 +151,7 @@ HGLibDeviceGetParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device
|
||||||
return deviceImpl->GetParamGroupList(count);
|
return deviceImpl->GetParamGroupList(count);
|
||||||
}
|
}
|
||||||
|
|
||||||
HGLibDeviceGetParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, const HGChar* option)
|
HGLibDeviceParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, HGUInt option)
|
||||||
{
|
{
|
||||||
if (NULL == device)
|
if (NULL == device)
|
||||||
{
|
{
|
||||||
|
@ -162,12 +162,12 @@ HGLibDeviceGetParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, const HGChar
|
||||||
return deviceImpl->GetParam(option);
|
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);
|
return HGLibDeviceImpl::ReleaseParamGroupList(paramGroup, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceGetParam* param)
|
HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceParam* param)
|
||||||
{
|
{
|
||||||
return HGLibDeviceImpl::ReleaseParam(param);
|
return HGLibDeviceImpl::ReleaseParam(param);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
#define __HGSCANNERLIB_H__
|
#define __HGSCANNERLIB_H__
|
||||||
|
|
||||||
#include "HGDef.h"
|
#include "HGDef.h"
|
||||||
#include "HGScannerLibOption.h"
|
|
||||||
|
|
||||||
HG_DECLARE_HANDLE(HGLibImage);
|
HG_DECLARE_HANDLE(HGLibImage);
|
||||||
HG_DECLARE_HANDLE(HGLibDevice);
|
HG_DECLARE_HANDLE(HGLibDevice);
|
||||||
|
@ -22,19 +21,295 @@ HG_DECLARE_HANDLE(HGLibDevice);
|
||||||
#define HGLIB_DEVSCAN_EVENT_END 2L
|
#define HGLIB_DEVSCAN_EVENT_END 2L
|
||||||
#define HGLIB_DEVSCAN_EVENT_INFO 3L
|
#define HGLIB_DEVSCAN_EVENT_INFO 3L
|
||||||
|
|
||||||
/* 设备参数类型 */
|
/* 组名 */
|
||||||
#define HGLIB_DEVPARAM_TYPE_INT 1L
|
// 基本设置
|
||||||
#define HGLIB_DEVPARAM_TYPE_STRING 2L
|
#define HGLIB_GROUP_NAME_BASESETTING 1L
|
||||||
#define HGLIB_DEVPARAM_TYPE_DOUBLE 3L
|
// 亮度
|
||||||
#define HGLIB_DEVPARAM_TYPE_BOOL 4L
|
#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_OPTION_NAME_DLSC 1L
|
||||||
#define HGLIB_DEVPARAM_RANGETYPE_STRINGLIST 2L
|
// "多流输出类型"
|
||||||
#define HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST 3L
|
#define HGLIB_OPTION_NAME_DLSCLX 2L
|
||||||
#define HGLIB_DEVPARAM_RANGETYPE_INTRANGE 4L
|
// "颜色模式"
|
||||||
#define HGLIB_DEVPARAM_RANGETYPE_DOUBLERANGE 5L
|
#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
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -53,9 +328,9 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
HGChar** value;
|
HGUInt* value;
|
||||||
HGUInt count;
|
HGUInt count;
|
||||||
}HGLibDeviceStringValueList;
|
}HGLibDeviceEnumValueList;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -77,34 +352,34 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
HGChar* option; /* 参数名 */
|
HGUInt option; /* 配置名, 参见HGLIB_OPTION_NAME_* */
|
||||||
|
|
||||||
HGUInt type; /* 参数类型, 参见HGLIB_DEVPARAM_TYPE_* */
|
HGUInt type; /* 值类型, 参见HGLIB_OPTION_VALUETYPE_* */
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
HGInt intValue;
|
HGInt intValue;
|
||||||
HGChar* stringValue;
|
HGUInt enumValue;
|
||||||
HGDouble doubleValue;
|
HGDouble doubleValue;
|
||||||
HGBool boolValue;
|
HGBool boolValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
HGUInt rangeType; /* 取值类型, 参见HGLIB_DEVPARAM_RANGETYPE_* */
|
HGUInt rangeType; /* 值范围类型, 参见HGLIB_OPTION_VALUERANGETYPE_* */
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
HGLibDeviceIntValueList intValueList;
|
HGLibDeviceIntValueList intValueList;
|
||||||
HGLibDeviceStringValueList stringValueList;
|
HGLibDeviceEnumValueList enumValueList;
|
||||||
HGLibDeviceDoubleValueList doubleValueList;
|
HGLibDeviceDoubleValueList doubleValueList;
|
||||||
HGLibDeviceIntValueRange intValueRange;
|
HGLibDeviceIntValueRange intValueRange;
|
||||||
HGLibDeviceDoubleValueRange doubleValueRange;
|
HGLibDeviceDoubleValueRange doubleValueRange;
|
||||||
};
|
};
|
||||||
}HGLibDeviceGetParam;
|
}HGLibDeviceParam;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
HGChar* groupName;
|
HGUInt group; /* 组名, 参见HGLIB_GROUP_NAME_* */
|
||||||
HGLibDeviceGetParam* param;
|
HGLibDeviceParam* param;
|
||||||
HGUInt paramCount;
|
HGUInt paramCount;
|
||||||
}HGLibDeviceGetParamGroup;
|
}HGLibDeviceParamGroup;
|
||||||
|
|
||||||
/* 设备热拔插回调
|
/* 设备热拔插回调
|
||||||
* event: HGLIB_DEVHOTPLUG_EVENT_*
|
* 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_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 HGLibDeviceParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt *count);
|
||||||
HGEXPORT HGLibDeviceGetParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, const HGChar* option);
|
HGEXPORT HGLibDeviceParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, HGUInt option);
|
||||||
|
|
||||||
/* 销毁设备参数 */
|
/* 销毁设备参数 */
|
||||||
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceGetParamGroup* paramGroup, HGUInt count);
|
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceParamGroup* paramGroup, HGUInt count);
|
||||||
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceGetParam* param);
|
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceParam* param);
|
||||||
|
|
||||||
/* 重置设备参数 */
|
/* 重置设备参数 */
|
||||||
HGEXPORT HGBool HGAPI HGLib_ResetDeviceParam(HGLibDevice device);
|
HGEXPORT HGBool HGAPI HGLib_ResetDeviceParam(HGLibDevice device);
|
||||||
|
|
|
@ -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__ */
|
|
Loading…
Reference in New Issue