diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index 4c9f23d..cb058dc 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -2883,6 +2883,14 @@ void hg_scanner::change_setting_language(bool init) } } } +void hg_scanner::erase_option(const char* name) +{ + setting_jsn_.erase(name); + + std::vector::iterator it = std::find(jsn_children_.begin(), jsn_children_.end(), name); + if (it != jsn_children_.end()) + jsn_children_.erase(it); +} void hg_scanner::init_settings(const char* json_setting_text) { const char* lang = language_option_descriptor(); @@ -2909,14 +2917,19 @@ void hg_scanner::init_settings(const char* json_setting_text) } if (!is_kernelsnap_239_220830_ && pid_ == 0x239) { - setting_jsn_.erase(SANE_STD_OPT_NAME_WAIT_TO_SCAN); - setting_jsn_.erase(SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH); - setting_jsn_.erase(SANE_STD_OPT_NAME_FEED_STRENGTH); + //setting_jsn_.erase(SANE_STD_OPT_NAME_WAIT_TO_SCAN); + //setting_jsn_.erase(SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH); + //setting_jsn_.erase(SANE_STD_OPT_NAME_FEED_STRENGTH); + erase_option(SANE_STD_OPT_NAME_WAIT_TO_SCAN); + erase_option(SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH); + erase_option(SANE_STD_OPT_NAME_FEED_STRENGTH); } if (!is_kernelsnap_239_220429_ && pid_ == 0x239) { - setting_jsn_.erase(SANE_STD_OPT_NAME_IS_FILL_COLOR); + //setting_jsn_.erase(SANE_STD_OPT_NAME_IS_FILL_COLOR); + erase_option(SANE_STD_OPT_NAME_IS_FILL_COLOR); } + VLOG_MINI_1(LOG_LEVEL_ALL, "Initialize %d settings ...\n", jsn_children_.size() - 1); notify_setting_result_ = false; change_setting_language(true); diff --git a/hgdriver/hgdev/hg_scanner.h b/hgdriver/hgdev/hg_scanner.h index 7ec846a..20e52f6 100644 --- a/hgdriver/hgdev/hg_scanner.h +++ b/hgdriver/hgdev/hg_scanner.h @@ -379,6 +379,7 @@ protected: uint32_t fetching_id_; // for sane read image ext info. added on 2023-01-13 void change_setting_language(bool init); + void erase_option(const char* name); void init_settings(const char* json_setting_text); int init_settings(int pid); void change_string_2_lang_id(const char* name, const char* key);