Merge branch 'master' of http://192.168.10.5:8099/sane/code_device
This commit is contained in:
commit
707359d6b7
|
@ -600,15 +600,22 @@ void hg_scanner::init_setting_func_map(void)
|
|||
setting_map_[SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_B] = &hg_scanner::setting_isremove_low_hole_threshold;
|
||||
setting_map_[SANE_STD_OPT_NAME_FOLD_TYPE] = &hg_scanner::setting_fold_type;
|
||||
}
|
||||
std::string hg_scanner::setting_name_from(const char* n_or_id)
|
||||
std::string hg_scanner::setting_name_from(const char* n_or_id, int* id)
|
||||
{
|
||||
if (IS_PTR_NUMBER(n_or_id))
|
||||
{
|
||||
if (id)
|
||||
*id = (int)n_or_id;
|
||||
|
||||
if ((unsigned long)n_or_id < jsn_children_.size())
|
||||
return jsn_children_[(unsigned long)n_or_id];
|
||||
else
|
||||
return "";
|
||||
}
|
||||
else if (id)
|
||||
{
|
||||
*id = std::distance(jsn_children_.begin(), std::find(jsn_children_.begin(), jsn_children_.end(), n_or_id));
|
||||
}
|
||||
|
||||
return n_or_id;
|
||||
}
|
||||
|
@ -2898,12 +2905,12 @@ int hg_scanner::set_setting(const char* name, void* data, int len)
|
|||
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner::get_setting(const char* name, char* json_txt_buf, int* len)
|
||||
int hg_scanner::get_setting(const char* name, char* json_txt_buf, int* len, int* id)
|
||||
{
|
||||
if (!len)
|
||||
return SCANNER_ERR_INVALID_PARAMETER;
|
||||
|
||||
std::string real_n(setting_name_from(name));
|
||||
std::string real_n(setting_name_from(name, id));
|
||||
if (name == nullptr)
|
||||
{
|
||||
*len = setting_jsn_.size();
|
||||
|
|
|
@ -50,7 +50,6 @@
|
|||
#define HGVERSION_LIBNANE "libCtsVersion.so"
|
||||
#endif
|
||||
#else
|
||||
#define OEM_HUAGAO
|
||||
#ifdef WIN32
|
||||
#define HGVERSION_LIBNANE "HGVersion.dll"
|
||||
#else
|
||||
|
@ -131,7 +130,7 @@ class hg_scanner
|
|||
void dump_image_real(hg_imgproc::HIMGPRC himg, const char* desc);
|
||||
|
||||
void init_setting_func_map(void);
|
||||
std::string setting_name_from(const char* n_or_id);
|
||||
std::string setting_name_from(const char* n_or_id, int* id = nullptr);
|
||||
void get_range(const char* name, std::vector<std::string>& range, std::string& def_val, bool& is_range/*range or list*/);
|
||||
bool check_range(const char* name, bool& val);
|
||||
bool check_range(const char* name, int& val);
|
||||
|
@ -417,7 +416,7 @@ public:
|
|||
int get_vid(void);
|
||||
int close(bool force);
|
||||
int set_setting(const char* name, void* data, int len);
|
||||
int get_setting(const char* name, char* json_txt_buf, int* len);
|
||||
int get_setting(const char* name, char* json_txt_buf, int* len, int* id);
|
||||
int hgpaper_to_devspaper(Paper_Map papermap[], int len, int& paper, bool* exact, TwSS* type);
|
||||
int image_configuration(SCANCONF &ic);
|
||||
std::string name(void);
|
||||
|
|
|
@ -691,13 +691,13 @@ scanner_err hg_scanner_mgr::hg_scanner_close(scanner_handle h, bool force)
|
|||
|
||||
return SCANNER_ERR_OK;
|
||||
}
|
||||
scanner_err hg_scanner_mgr::hg_scanner_get_parameter(scanner_handle h, const char* name, char* data, long* len)
|
||||
scanner_err hg_scanner_mgr::hg_scanner_get_parameter(scanner_handle h, const char* name, char* data, long* len, SANE_Int* id)
|
||||
{
|
||||
if (!len)
|
||||
return SCANNER_ERR_INVALID_PARAMETER;
|
||||
|
||||
int l = *len,
|
||||
err = SCAN_PTR(h)->get_setting(name, data, &l);
|
||||
err = SCAN_PTR(h)->get_setting(name, data, &l, id);
|
||||
|
||||
*len = l;
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ public:
|
|||
scanner_err hg_scanner_enum(ScannerInfo* scanner_list, long* count, bool local_only);
|
||||
scanner_err hg_scanner_open(scanner_handle* h, const char* name, bool shared, const char* user, const char* pwd, const char* check, char* rsc);
|
||||
scanner_err hg_scanner_close(scanner_handle h, bool force);
|
||||
scanner_err hg_scanner_get_parameter(scanner_handle h, const char* name, char* data, long* len);
|
||||
scanner_err hg_scanner_get_parameter(scanner_handle h, const char* name, char* data, long* len, SANE_Int* id);
|
||||
scanner_err hg_scanner_set_parameter(scanner_handle h, const char* name, void* data, long len);
|
||||
scanner_err hg_scanner_start(scanner_handle h, void* async_event, int num);
|
||||
scanner_err hg_scanner_stop(scanner_handle h);
|
||||
|
|
|
@ -122,9 +122,9 @@ extern "C"
|
|||
return hg_scanner_mgr::instance()->hg_scanner_close(h, force);
|
||||
}
|
||||
|
||||
scanner_err hg_scanner_get_parameter(scanner_handle h, const char* name, char* data, long* len)
|
||||
scanner_err hg_scanner_get_parameter(scanner_handle h, const char* name, char* data, long* len, SANE_Int* id)
|
||||
{
|
||||
return hg_scanner_mgr::instance()->hg_scanner_get_parameter(h, name, data, len);
|
||||
return hg_scanner_mgr::instance()->hg_scanner_get_parameter(h, name, data, len, id);
|
||||
}
|
||||
|
||||
scanner_err hg_scanner_set_parameter(scanner_handle h, const char* name, void* data, long len)
|
||||
|
|
|
@ -327,11 +327,13 @@ extern "C"{
|
|||
// 当'data'为NULL或者空间小于所需最小长度时,返回所需要的内存长度
|
||||
// 如果“param_no==0”,则返回最大可配置的参数号
|
||||
// 该参数必须非空,如果为NULL,则会返回 EPARAMETERINVAL 的错误
|
||||
//
|
||||
// id - to receive the option ID if 'name' is the name of the option
|
||||
//
|
||||
// Return: 错误代码,E_OK or E_INSUFFICIENTMEM or E_PARAMETERINVAL or E_DEVICENOTFOUND or E_OUTOFRANGE
|
||||
//
|
||||
// NOTE: 'data'空间由用户分配,如果空间太小(包含传入NULL),会在len中返回所需要的最小空间字节数,并返回 EINSUFFICIENTMEM
|
||||
scanner_err hg_scanner_get_parameter(scanner_handle h, const char* name, char* json_data, long* len);
|
||||
scanner_err hg_scanner_get_parameter(scanner_handle h, const char* name, char* json_data, long* len, SANE_Int* id = nullptr);
|
||||
|
||||
// Function: 设置设备的配置参数
|
||||
//
|
||||
|
|
Loading…
Reference in New Issue