diff --git a/hgdriver/hgdev/common_setting.cpp b/hgdriver/hgdev/common_setting.cpp index dc6a9c6..1637f72 100644 --- a/hgdriver/hgdev/common_setting.cpp +++ b/hgdriver/hgdev/common_setting.cpp @@ -1,6 +1,6 @@ #include "common_setting.h" #include "sane/sane_option_definitions.h" - +#include "hg_log.h" static struct _fixed_option { std::string str; @@ -9,130 +9,131 @@ static struct _fixed_option g_color_mode[] = { - {OPTION_VALUE_YSMS_HB, COLOR_MODE_BLACK_WHITE}, - {OPTION_VALUE_YSMS_256JHD, COLOR_MODE_256_GRAY}, - {OPTION_VALUE_YSMS_24WCS, COLOR_MODE_24_BITS}, - {OPTION_VALUE_YSMS_YSZDSB, COLOR_MODE_AUTO_MATCH} + + {hg_log::lang_load(ID_OPTION_VALUE_YSMS_HB), COLOR_MODE_BLACK_WHITE }, + {hg_log::lang_load(ID_OPTION_VALUE_YSMS_256JHD), COLOR_MODE_256_GRAY}, + {hg_log::lang_load(ID_OPTION_VALUE_YSMS_24WCS), COLOR_MODE_24_BITS}, + {hg_log::lang_load(ID_OPTION_VALUE_YSMS_YSZDSB), COLOR_MODE_AUTO_MATCH} }, g_multi_out[] = { - {OPTION_VALUE_DLSCLX_CS_HD_HB, MULTI_OUT_ALL}, - {OPTION_VALUE_DLSCLX_CS_HD, MULTI_COLOR_AND_GRAY}, - {OPTION_VALUE_DLSCLX_CS_HB, MULTI_COLOR_AND_BW}, - {OPTION_VALUE_DLSCLX_HD_HB, MULTI_GRAY_AND_BW} + {hg_log::lang_load(ID_OPTION_VALUE_DLSCLX_CS_HD_HB), MULTI_OUT_ALL}, + {hg_log::lang_load(ID_OPTION_VALUE_DLSCLX_CS_HD), MULTI_COLOR_AND_GRAY}, + {hg_log::lang_load(ID_OPTION_VALUE_DLSCLX_CS_HB), MULTI_COLOR_AND_BW}, + {hg_log::lang_load(ID_OPTION_VALUE_DLSCLX_HD_HB), MULTI_GRAY_AND_BW} }, g_rid_color[] = { - {OPTION_VALUE_HDHHBTX_CSYZQ_BCS, RID_COLOR_NONE}, - {OPTION_VALUE_HDHHBTX_CSYZQ_CHS, RID_COLOR_RID_RED}, - {OPTION_VALUE_HDHHBTX_CSYZQ_CLS, RID_COLOR_RID_GREEN}, - {OPTION_VALUE_HDHHBTX_CSYZQ_CHULANSE, RID_COLOR_RID_BLUE}, - {OPTION_VALUE_HDHHBTX_CSYZQ_HSZQ, RID_COLOR_ENHANCE_RED}, - {OPTION_VALUE_HDHHBTX_CSYZQ_LSZQ, RID_COLOR_ENHANCE_GREEN}, - {OPTION_VALUE_HDHHBTX_CSYZQ_LANSEZENGQIANG, RID_COLOR_ENHANCE_BLUE} + {hg_log::lang_load(ID_OPTION_VALUE_HDHHBTX_CSYZQ_BCS), RID_COLOR_NONE}, + {hg_log::lang_load(ID_OPTION_VALUE_HDHHBTX_CSYZQ_CHS), RID_COLOR_RID_RED}, + {hg_log::lang_load(ID_OPTION_VALUE_HDHHBTX_CSYZQ_CLS), RID_COLOR_RID_GREEN}, + {hg_log::lang_load(ID_OPTION_VALUE_HDHHBTX_CSYZQ_CHULANSE), RID_COLOR_RID_BLUE}, + {hg_log::lang_load(ID_OPTION_VALUE_HDHHBTX_CSYZQ_HSZQ), RID_COLOR_ENHANCE_RED}, + {hg_log::lang_load(ID_OPTION_VALUE_HDHHBTX_CSYZQ_LSZQ), RID_COLOR_ENHANCE_GREEN}, + {hg_log::lang_load(ID_OPTION_VALUE_HDHHBTX_CSYZQ_LANSEZENGQIANG), RID_COLOR_ENHANCE_BLUE} }, g_paper[] = { - {OPTION_VALUE_ZZCC_A3, PAPER_A3}, - {OPTION_VALUE_ZZCC_A4, PAPER_A4}, - {OPTION_VALUE_ZZCC_A5, PAPER_A5}, - {OPTION_VALUE_ZZCC_A6, PAPER_A6}, - {OPTION_VALUE_ZZCC_B4, PAPER_B4}, - {OPTION_VALUE_ZZCC_B5, PAPER_B5}, - {OPTION_VALUE_ZZCC_B6, PAPER_B6}, - {OPTION_VALUE_ZZCC_8K, PAPER_8K}, - {OPTION_VALUE_ZZCC_16K, PAPER_16K}, - {OPTION_VALUE_ZZCC_Letter, PAPER_LETTER}, - {OPTION_VALUE_ZZCC_A4HX, PAPER_A4_LATERAL}, - {OPTION_VALUE_ZZCC_A5HX, PAPER_A5_LATERAL}, - {OPTION_VALUE_ZZCC_A6HX, PAPER_A6_LATERAL}, - {OPTION_VALUE_ZZCC_B5HX, PAPER_B5_LATERAL}, - {OPTION_VALUE_ZZCC_B6HX, PAPER_B6_LATERAL}, - {OPTION_VALUE_ZZCC_16KHX, PAPER_16K_LATERAL}, - {OPTION_VALUE_ZZCC_LetterHX, PAPER_LETTER_LATERAL}, - {OPTION_VALUE_ZZCC_DoubleLetter, PAPER_DOUBLE_LETTER}, - {OPTION_VALUE_ZZCC_LEGAL, PAPER_LEGAL}, - {OPTION_VALUE_ZZCC_PPYSCC, PAPER_AUTO_MATCH}, - {OPTION_VALUE_ZZCC_ZDSMCC, PAPER_MAX_SIZE}, - {OPTION_VALUE_ZZCC_ZDSMCCZDCQ, PAPER_MAX_SIZE_CLIP}, - {OPTION_VALUE_ZZCC_SLSJ, PAPER_TRIGEMINY} + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_A3), PAPER_A3}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_A4), PAPER_A4}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_A5), PAPER_A5}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_A6), PAPER_A6}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_B4), PAPER_B4}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_B5), PAPER_B5}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_B6), PAPER_B6}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_8K), PAPER_8K}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_16K), PAPER_16K}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_Letter), PAPER_LETTER}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_A4HX), PAPER_A4_LATERAL}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_A5HX), PAPER_A5_LATERAL}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_A6HX), PAPER_A6_LATERAL}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_B5HX), PAPER_B5_LATERAL}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_B6HX), PAPER_B6_LATERAL}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_16KHX), PAPER_16K_LATERAL}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_LetterHX), PAPER_LETTER_LATERAL}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_DoubleLetter), PAPER_DOUBLE_LETTER}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_LEGAL), PAPER_LEGAL}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_PPYSCC), PAPER_AUTO_MATCH}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_ZDSMCC), PAPER_MAX_SIZE}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_ZDSMCCZDCQ), PAPER_MAX_SIZE_CLIP}, + {hg_log::lang_load(ID_OPTION_VALUE_ZZCC_SLSJ), PAPER_TRIGEMINY} }, g_page[] = { - {OPTION_VALUE_SMYM_DM, PAGE_SINGLE}, - {OPTION_VALUE_SMYM_SM, PAGE_DOUBLE}, - {OPTION_VALUE_SMYM_TGKBYTY, PAGE_OMIT_EMPTY}, - {OPTION_VALUE_SMYM_TGKBYFPZ, PAGE_OMIT_EMPTY_RECEIPT}, - {OPTION_VALUE_SMYM_DZ, PAGE_FOLIO} + {hg_log::lang_load(ID_OPTION_VALUE_SMYM_DM), PAGE_SINGLE}, + {hg_log::lang_load(ID_OPTION_VALUE_SMYM_SM), PAGE_DOUBLE}, + {hg_log::lang_load(ID_OPTION_VALUE_SMYM_TGKBYTY), PAGE_OMIT_EMPTY}, + {hg_log::lang_load(ID_OPTION_VALUE_SMYM_TGKBYFPZ), PAGE_OMIT_EMPTY_RECEIPT}, + {hg_log::lang_load(ID_OPTION_VALUE_SMYM_DZ), PAGE_FOLIO} }, g_sharpen[] = { - {OPTION_VALUE_RHYMH_W, SHARPEN_NONE}, - {OPTION_VALUE_RHYMH_RH, SHARPEN_SHARPEN}, - {OPTION_VALUE_RHYMH_JYBRH, SHARPEN_SHARPEN_MORE}, - {OPTION_VALUE_RHYMH_MH, SHARPEN_HAZY}, - {OPTION_VALUE_RHYMH_JYBMH, SHARPEN_HAZY_MORE} + {hg_log::lang_load(ID_OPTION_VALUE_RHYMH_W), SHARPEN_NONE}, + {hg_log::lang_load(ID_OPTION_VALUE_RHYMH_RH), SHARPEN_SHARPEN}, + {hg_log::lang_load(ID_OPTION_VALUE_RHYMH_JYBRH), SHARPEN_SHARPEN_MORE}, + {hg_log::lang_load(ID_OPTION_VALUE_RHYMH_MH), SHARPEN_HAZY}, + {hg_log::lang_load(ID_OPTION_VALUE_RHYMH_JYBMH), SHARPEN_HAZY_MORE} }, g_fill_bkg[] = { - {OPTION_VALUE_BJTCFS_TDBX, FILL_BKG_CONVEX_POLYGON}, - {OPTION_VALUE_BJTCFS_ADBX, FILL_BKG_CONCAVE_POLYGON} + {hg_log::lang_load(ID_OPTION_VALUE_BJTCFS_TDBX), FILL_BKG_CONVEX_POLYGON}, + {hg_log::lang_load(ID_OPTION_VALUE_BJTCFS_ADBX), FILL_BKG_CONCAVE_POLYGON} }, g_scan_mode[] = { - {OPTION_VALUE_SMZS_LXSM, SCAN_MODE_CONTINUOUS}, - {OPTION_VALUE_SMZS_SMZDZS, SCAN_MODE_GIVEN_COUNT} + {hg_log::lang_load(ID_OPTION_VALUE_SMZS_LXSM), SCAN_MODE_CONTINUOUS}, + {hg_log::lang_load(ID_OPTION_VALUE_SMZS_SMZDZS), SCAN_MODE_GIVEN_COUNT} }, g_text_direction[] = { - {OPTION_VALUE_WGFX_0, TEXT_DIRECTION_0}, - {OPTION_VALUE_WGFX_90, TEXT_DIRECTION_90}, - {OPTION_VALUE_WGFX_180, TEXT_DIRECTION_180}, - {OPTION_VALUE_WGFX__90, TEXT_DIRECTION_270}, - {OPTION_VALUE_WGFX_ZDWBFXSB, TEXT_DIRECTION_AUTO} + {hg_log::lang_load(ID_OPTION_VALUE_WGFX_0), TEXT_DIRECTION_0}, + {hg_log::lang_load(ID_OPTION_VALUE_WGFX_90), TEXT_DIRECTION_90}, + {hg_log::lang_load(ID_OPTION_VALUE_WGFX_180), TEXT_DIRECTION_180}, + {hg_log::lang_load(ID_OPTION_VALUE_WGFX__90), TEXT_DIRECTION_270}, + {hg_log::lang_load(ID_OPTION_VALUE_WGFX_ZDWBFXSB), TEXT_DIRECTION_AUTO} }, g_permeate_lv[] = { - {OPTION_VALUE_FZSTDJ_JR, PERMAEATE_WEAKER}, - {OPTION_VALUE_FZSTDJ_R, PERMAEATE_WEAK}, - {OPTION_VALUE_FZSTDJ_YB, PERMAEATE_ORDINARY}, - {OPTION_VALUE_FZSTDJ_Q, PERMAEATE_STRONG}, - {OPTION_VALUE_FZSTDJ_JQ, PERMAEATE_STRONGER} + {hg_log::lang_load(ID_OPTION_VALUE_FZSTDJ_JR), PERMAEATE_WEAKER}, + {hg_log::lang_load(ID_OPTION_VALUE_FZSTDJ_R), PERMAEATE_WEAK}, + {hg_log::lang_load(ID_OPTION_VALUE_FZSTDJ_YB), PERMAEATE_ORDINARY}, + {hg_log::lang_load(ID_OPTION_VALUE_FZSTDJ_Q), PERMAEATE_STRONG}, + {hg_log::lang_load(ID_OPTION_VALUE_FZSTDJ_JQ), PERMAEATE_STRONGER} }, g_img_quality[] = { - {OPTION_VALUE_HZ_W, IMG_NONE}, - {OPTION_VALUE_HZ_SDYX, IMG_SPEED}, - {OPTION_VALUE_HZ_HZYX, IMG_QUALITY} + {hg_log::lang_load(ID_OPTION_VALUE_HZ_W), IMG_NONE}, + {hg_log::lang_load(ID_OPTION_VALUE_HZ_SDYX), IMG_SPEED}, + {hg_log::lang_load(ID_OPTION_VALUE_HZ_HZYX), IMG_QUALITY} }, g_paper_strenght[]= { - {OPTION_VALUE_FZQD_R,PAPER_WEAK}, - {OPTION_VALUE_FZQD_YB,PAPER_AVERAGE}, - {OPTION_VALUE_FZQD_Q,PAPER_STRONG} + {hg_log::lang_load(ID_OPTION_VALUE_FZQD_R),PAPER_WEAK}, + {hg_log::lang_load(ID_OPTION_VALUE_FZQD_YB),PAPER_AVERAGE}, + {hg_log::lang_load(ID_OPTION_VALUE_FZQD_Q),PAPER_STRONG} }, g_sleep_time[]= { - {OPTION_VALUE_XMSJ_BXM,SLEEP_TIME_0MIN}, - {OPTION_VALUE_XMSJ_WFZ,SLEEP_TIME_5MIN}, - {OPTION_VALUE_XMSJ_SFZ,SLEEP_TIME_10MIN}, - {OPTION_VALUE_XMSJ_BXS,SLEEP_TIME_30MIN}, - {OPTION_VALUE_XMSJ_YXS,SLEEP_TIME_60MIN}, - {OPTION_VALUE_XMSJ_LXS,SLEEP_TIME_120MIN}, - {OPTION_VALUE_XMSJ_SXS,SLEEP_TIME_240MIN}, + {hg_log::lang_load(ID_OPTION_VALUE_XMSJ_BXM),SLEEP_TIME_0MIN}, + {hg_log::lang_load(ID_OPTION_VALUE_XMSJ_WFZ),SLEEP_TIME_5MIN}, + {hg_log::lang_load(ID_OPTION_VALUE_XMSJ_SFZ),SLEEP_TIME_10MIN}, + {hg_log::lang_load(ID_OPTION_VALUE_XMSJ_BXS),SLEEP_TIME_30MIN}, + {hg_log::lang_load(ID_OPTION_VALUE_XMSJ_YXS),SLEEP_TIME_60MIN}, + {hg_log::lang_load(ID_OPTION_VALUE_XMSJ_LXS),SLEEP_TIME_120MIN}, + {hg_log::lang_load(ID_OPTION_VALUE_XMSJ_SXS),SLEEP_TIME_240MIN}, }, g_fold_type[] = { - {OPTION_VALUE_ZYDZ,FOLD_TYPE_LEFT_RIGHT}, - {OPTION_VALUE_SXDZ,FOLD_TYPE_UP_DOWN}, - {OPTION_VALUE_ZDDZ,FOLD_TYPE_AUTO} + {hg_log::lang_load(ID_OPTION_VALUE_ZYDZ),FOLD_TYPE_LEFT_RIGHT}, + {hg_log::lang_load(ID_OPTION_VALUE_SXDZ),FOLD_TYPE_UP_DOWN}, + {hg_log::lang_load(ID_OPTION_VALUE_ZDDZ),FOLD_TYPE_AUTO} }; static struct paper_size @@ -492,16 +493,16 @@ int double_paper_flag_from_option_value(std::string& opt_val, bool* exact) if (exact) *exact = true; - if (opt_val == OPTION_VALUE_SZTPCL_SCTXBJXSM) + if (opt_val == hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_SCTXBJXSM)) return DOUBLE_PAPER_CONTINUE | DOUBLE_PAPER_SAVE_IMG; - else if (opt_val == OPTION_VALUE_SZTPCL_SCTXBTZSM) + else if (opt_val == hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_SCTXBTZSM)) return DOUBLE_PAPER_SAVE_IMG; - else if (opt_val == OPTION_VALUE_SZTPCL_DQTXBJXSM) + else if (opt_val == hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_DQTXBJXSM)) return DOUBLE_PAPER_CONTINUE; else { if (exact) - *exact = opt_val == OPTION_VALUE_SZTPCL_DQTXBTZSM; + *exact = opt_val == hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_DQTXBTZSM); return 0; } @@ -512,14 +513,14 @@ std::string double_paper_flag_to_option_value(int flag) if (is_continue_when_double_paper(flag)) { if (is_save_img_when_double_paper(flag)) - return OPTION_VALUE_SZTPCL_SCTXBJXSM; + return hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_SCTXBJXSM); else - return OPTION_VALUE_SZTPCL_DQTXBJXSM; + return hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_DQTXBJXSM); } else if (is_save_img_when_double_paper(flag)) - return OPTION_VALUE_SZTPCL_SCTXBTZSM; + return hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_SCTXBTZSM); else - return OPTION_VALUE_SZTPCL_DQTXBTZSM; + return hg_log::lang_load(ID_OPTION_VALUE_SZTPCL_DQTXBTZSM); } bool is_continue_when_double_paper(int flag) { diff --git a/hgdriver/hgdev/common_setting.h b/hgdriver/hgdev/common_setting.h index 63bb325..4f887d6 100644 --- a/hgdriver/hgdev/common_setting.h +++ b/hgdriver/hgdev/common_setting.h @@ -6,8 +6,10 @@ // #include #include "char_const.h" - - +#include "sane/sane_ex.h" +#include +#include +#include "sane/sane_option_definitions.h" ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 硬件配置项定义 // @@ -1163,3 +1165,155 @@ namespace setting3399 {PAPER_MAX_SIZE, TwSS::MaxSize, setting3288dsp::G400_MAXSIZE}, {PAPER_TRIGEMINY, TwSS::MaxSize, setting3288dsp::G400_LONGLETTER}, }; + static std::mapjson_name = + { + { SANE_STD_OPT_NAME_RESTORE ,ID_OPTION_TITLE_HFMRSZ }, + { SANE_STD_OPT_NAME_HELP ,ID_OPTION_TITLE_BZ }, + { SANE_STD_OPT_NAME_IS_MULTI_OUT ,ID_OPTION_TITLE_DLSC }, + { SANE_STD_OPT_NAME_MULTI_OUT_TYPE ,ID_OPTION_TITLE_DLSCLX }, + { SANE_STD_OPT_NAME_COLOR_MODE ,ID_OPTION_TITLE_YSMS }, + { SANE_STD_OPT_NAME_BINARY_THRESHOLD ,ID_OPTION_TITLE_HBTXYZ }, + { SANE_STD_OPT_NAME_REVERSE_01 ,ID_OPTION_TITLE_HBTXFSSC }, + { SANE_STD_OPT_NAME_FILTER ,ID_OPTION_TITLE_HDHHBTX_CSYZQ }, + { SANE_STD_OPT_NAME_RID_MULTIOUT_RED ,ID_OPTION_TITLE_24WCSTX_DLSCCH }, + { SANE_STD_OPT_NAME_RID_ANSWER_SHEET_RED ,ID_OPTION_TITLE_24WCSTX_DTKCH }, + { SANE_STD_OPT_NAME_ERASE_BACKGROUND ,ID_OPTION_TITLE_BJYC }, + { SANE_STD_OPT_NAME_BKG_COLOR_RANGE ,ID_OPTION_TITLE_BJSCFDFW }, + { SANE_STD_OPT_NAME_SHARPEN ,ID_OPTION_TITLE_RHYMH }, + { SANE_STD_OPT_NAME_RID_MORR ,ID_OPTION_TITLE_QCMW }, + { SANE_STD_OPT_NAME_RID_GRID ,ID_OPTION_TITLE_CWW }, + { SANE_STD_OPT_NAME_ERROR_EXTENSION ,ID_OPTION_TITLE_CWKS }, + { SANE_STD_OPT_NAME_NOISE_OPTIMIZE ,ID_OPTION_TITLE_HBTXZDYH }, + { SANE_STD_OPT_NAME_NOISE_SIZE ,ID_OPTION_TITLE_ZDYHCC }, + { SANE_STD_OPT_NAME_PAPER ,ID_OPTION_TITLE_ZZCC }, + { SANE_STD_OPT_NAME_CUSTOM_AREA ,ID_OPTION_TITLE_ZDYSMQY }, + { SANE_STD_OPT_NAME_CUSTOM_AREA_LEFT ,ID_OPTION_TITLE_SMQYZCmm }, + { SANE_STD_OPT_NAME_CUSTOM_AREA_RIGHT ,ID_OPTION_TITLE_SMQYYCmm }, + { SANE_STD_OPT_NAME_CUSTOM_AREA_TOP ,ID_OPTION_TITLE_SMQYSCmm }, + { SANE_STD_OPT_NAME_CUSTOM_AREA_BOTTOM ,ID_OPTION_TITLE_SMQYXCmm }, + { SANE_STD_OPT_NAME_SIZE_CHECK ,ID_OPTION_TITLE_CCJC }, + { SANE_STD_OPT_NAME_PAGE ,ID_OPTION_TITLE_SMYM }, + { SANE_STD_OPT_NAME_DISCARD_BLANK_SENS ,ID_OPTION_TITLE_TGKBYLMD }, + { SANE_STD_OPT_NAME_RESOLUTION ,ID_OPTION_TITLE_FBL }, + { SANE_STD_OPT_NAME_TIME_TO_SLEEP ,ID_OPTION_TITLE_XMSJ }, + { SANE_STD_OPT_NAME_IMAGE_QUALITY ,ID_OPTION_TITLE_HZ }, + { SANE_STD_OPT_NAME_EXCHANGE ,ID_OPTION_TITLE_JHZFM }, + { SANE_STD_OPT_NAME_SPLIT ,ID_OPTION_TITLE_TXCF }, + { SANE_STD_OPT_NAME_ANTI_SKEW ,ID_OPTION_TITLE_ZDJP }, + { SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA ,ID_OPTION_TITLE_QYSDQX }, + { SANE_STD_OPT_NAME_GAMMA ,ID_OPTION_TITLE_JMZ }, + { SANE_STD_OPT_NAME_BRIGHTNESS ,ID_OPTION_TITLE_LDZ }, + { SANE_STD_OPT_NAME_CONTRAST ,ID_OPTION_TITLE_DBD }, + { SANE_STD_OPT_NAME_IS_PHOTO_MODE ,ID_OPTION_TITLE_ZPMS }, + { SANE_STD_OPT_NAME_ERASE_BLACK_FRAME ,ID_OPTION_TITLE_XCHK }, + { SANE_STD_OPT_NAME_DARK_SAMPLE ,ID_OPTION_TITLE_SSYZ }, + { SANE_STD_OPT_NAME_THRESHOLD ,ID_OPTION_TITLE_YZ }, + { SANE_STD_OPT_NAME_ANTI_NOISE_LEVEL ,ID_OPTION_TITLE_BJKZDJ }, + { SANE_STD_OPT_NAME_MARGIN ,ID_OPTION_TITLE_BYSJ }, + { SANE_STD_OPT_NAME_FILL_BKG_MODE ,ID_OPTION_TITLE_BJTCFS }, + { SANE_STD_OPT_NAME_IS_ANTI_PERMEATE ,ID_OPTION_TITLE_FZST }, + { SANE_STD_OPT_NAME_ANTI_PERMEATE_LEVEL ,ID_OPTION_TITLE_FZSTDJ }, + { SANE_STD_OPT_NAME_RID_HOLE ,ID_OPTION_TITLE_CKYC }, + { SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE ,ID_OPTION_TITLE_CKSSFWZFMBL }, + { SANE_STD_OPT_NAME_RID_HOLE_L ,ID_OPTION_TITLE_CKYCZC }, + { SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_L ,ID_OPTION_TITLE_ZCCKSSFWZFMBL }, + { SANE_STD_OPT_NAME_RID_HOLE_R ,ID_OPTION_TITLE_CKYCYC }, + { SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_R ,ID_OPTION_TITLE_YCCKSSFWZFMBL }, + { SANE_STD_OPT_NAME_RID_HOLE_T ,ID_OPTION_TITLE_CKYCSC }, + { SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_T ,ID_OPTION_TITLE_SCCKSSFWZFMBL }, + { SANE_STD_OPT_NAME_RID_HOLE_B ,ID_OPTION_TITLE_CKYCXC }, + { SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_B ,ID_OPTION_TITLE_XCCKSSFWZFMBL }, + { SANE_STD_OPT_NAME_IS_FILL_COLOR ,ID_OPTION_TITLE_SCTC }, + { SANE_STD_OPT_NAME_IS_ULTROSONIC_CHECK ,ID_OPTION_TITLE_CSBJC }, + { SANE_STD_OPT_NAME_DOUBLE_FEED_HANDLE ,ID_OPTION_TITLE_SZTPCL }, + { SANE_STD_OPT_NAME_IS_CHECK_STAPLE ,ID_OPTION_TITLE_ZDJC }, + { SANE_STD_OPT_NAME_SCAN_MODE ,ID_OPTION_TITLE_SMZS }, + { SANE_STD_OPT_NAME_SCAN_COUNT ,ID_OPTION_TITLE_SMSL }, + { SANE_STD_OPT_NAME_TEXT_DIRECTION ,ID_OPTION_TITLE_WGFX }, + { SANE_STD_OPT_NAME_IS_ROTATE_BKG_180 ,ID_OPTION_TITLE_BMXZ180 }, + { SANE_STD_OPT_NAME_IS_CHECK_DOG_EAR ,ID_OPTION_TITLE_ZJJC }, + { SANE_STD_OPT_NAME_DOG_EAR_SIZE ,ID_OPTION_TITLE_ZJDX }, + { SANE_STD_OPT_NAME_IS_CHECK_ASKEW ,ID_OPTION_TITLE_WXJC }, + { SANE_STD_OPT_NAME_ASKEW_RANGE ,ID_OPTION_TITLE_WXRRD }, + { SANE_STD_OPT_NAME_FEED_STRENGTH ,ID_OPTION_TITLE_FZQD }, + { SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH ,ID_OPTION_TITLE_ZDFZQD }, + { SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE ,ID_OPTION_TITLE_JZSBL }, + { SANE_STD_OPT_NAME_WAIT_TO_SCAN ,ID_OPTION_TITLE_DZSM }, + { SANE_STD_OPT_NAME_FOLD_TYPE ,ID_OPTION_TITLE_DZMS }, + }; + static std::vectorjson_name_ + { + SANE_STD_OPT_NAME_RESTORE, + SANE_STD_OPT_NAME_HELP, + SANE_STD_OPT_NAME_IS_MULTI_OUT, + SANE_STD_OPT_NAME_MULTI_OUT_TYPE, + SANE_STD_OPT_NAME_COLOR_MODE, + SANE_STD_OPT_NAME_BINARY_THRESHOLD, + SANE_STD_OPT_NAME_REVERSE_01 , + SANE_STD_OPT_NAME_FILTER, + SANE_STD_OPT_NAME_RID_MULTIOUT_RED, + SANE_STD_OPT_NAME_RID_ANSWER_SHEET_RED, + SANE_STD_OPT_NAME_ERASE_BACKGROUND, + SANE_STD_OPT_NAME_BKG_COLOR_RANGE, + SANE_STD_OPT_NAME_SHARPEN, + SANE_STD_OPT_NAME_RID_MORR, + SANE_STD_OPT_NAME_RID_GRID, + SANE_STD_OPT_NAME_ERROR_EXTENSION, + SANE_STD_OPT_NAME_NOISE_OPTIMIZE, + SANE_STD_OPT_NAME_NOISE_SIZE, + SANE_STD_OPT_NAME_PAPER, + SANE_STD_OPT_NAME_CUSTOM_AREA, + SANE_STD_OPT_NAME_CUSTOM_AREA_LEFT, + SANE_STD_OPT_NAME_CUSTOM_AREA_RIGHT, + SANE_STD_OPT_NAME_CUSTOM_AREA_TOP, + SANE_STD_OPT_NAME_CUSTOM_AREA_BOTTOM, + SANE_STD_OPT_NAME_SIZE_CHECK, + SANE_STD_OPT_NAME_PAGE, + SANE_STD_OPT_NAME_DISCARD_BLANK_SENS, + SANE_STD_OPT_NAME_RESOLUTION, + SANE_STD_OPT_NAME_TIME_TO_SLEEP, + SANE_STD_OPT_NAME_IMAGE_QUALITY, + SANE_STD_OPT_NAME_EXCHANGE, + SANE_STD_OPT_NAME_SPLIT, + SANE_STD_OPT_NAME_ANTI_SKEW, + SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA, + SANE_STD_OPT_NAME_GAMMA, + SANE_STD_OPT_NAME_BRIGHTNESS, + SANE_STD_OPT_NAME_CONTRAST, + SANE_STD_OPT_NAME_IS_PHOTO_MODE, + SANE_STD_OPT_NAME_ERASE_BLACK_FRAME, + SANE_STD_OPT_NAME_DARK_SAMPLE, + SANE_STD_OPT_NAME_THRESHOLD, + SANE_STD_OPT_NAME_ANTI_NOISE_LEVEL, + SANE_STD_OPT_NAME_MARGIN, + SANE_STD_OPT_NAME_FILL_BKG_MODE, + SANE_STD_OPT_NAME_IS_ANTI_PERMEATE, + SANE_STD_OPT_NAME_ANTI_PERMEATE_LEVEL, + SANE_STD_OPT_NAME_RID_HOLE, + SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE, + SANE_STD_OPT_NAME_RID_HOLE_L, + SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_L, + SANE_STD_OPT_NAME_RID_HOLE_R, + SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_R, + SANE_STD_OPT_NAME_RID_HOLE_T, + SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_T, + SANE_STD_OPT_NAME_RID_HOLE_B, + SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_B, + SANE_STD_OPT_NAME_IS_FILL_COLOR, + SANE_STD_OPT_NAME_IS_ULTROSONIC_CHECK, + SANE_STD_OPT_NAME_DOUBLE_FEED_HANDLE, + SANE_STD_OPT_NAME_IS_CHECK_STAPLE, + SANE_STD_OPT_NAME_SCAN_MODE, + SANE_STD_OPT_NAME_SCAN_COUNT, + SANE_STD_OPT_NAME_TEXT_DIRECTION, + SANE_STD_OPT_NAME_IS_ROTATE_BKG_180, + SANE_STD_OPT_NAME_IS_CHECK_DOG_EAR, + SANE_STD_OPT_NAME_DOG_EAR_SIZE, + SANE_STD_OPT_NAME_IS_CHECK_ASKEW, + SANE_STD_OPT_NAME_ASKEW_RANGE, + SANE_STD_OPT_NAME_FEED_STRENGTH, + SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH, + SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE, + SANE_STD_OPT_NAME_WAIT_TO_SCAN, + SANE_STD_OPT_NAME_FOLD_TYPE + }; \ No newline at end of file diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index 8c937f1..9be8d14 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -147,7 +147,7 @@ hg_scanner::hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io,in , bright_(128), contrast_(4), gamma_(1.0f), threshold_(40), anti_noise_(8), margin_(5) , fractate_level_(50), ui_ev_cb_(ui_default_callback), scan_life_(NULL) , notify_setting_result_(false), user_cancel_(false), cb_mem_(true), test_1_paper_(false) - , img_type_(""), online_(false),is_quality_(-1),is_color_fill(false),is_multiout(false),save_multiout(OPTION_VALUE_DLSCLX_CS_HD_HB) + , img_type_(""), online_(false),is_quality_(-1),is_color_fill(false),is_multiout(false),save_multiout(hg_log::lang_load(ID_OPTION_VALUE_DLSCLX_CS_HD_HB)) , final_img_index_(0), custom_area_(false),save_sizecheck(false), bw_threshold_(128), custom_gamma_(false) , double_paper_handle_(0), keep_watermark_(false), save_feedmode_type_(false), feedmode_(1), sleeptime_(-1),split3399_(0) , async_io_(false), is_white_0_(true), isremove_left_hole(false), isremove_right_hole(false), isremove_top_hole(false), isremove_low_hole(false) @@ -161,6 +161,7 @@ hg_scanner::hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io,in #if !defined(_WIN32) && !defined(_WIN64) &&defined(x86_64) isx86_Advan_ = false; #endif + lang_initialize(); init_setting_func_map(); final_path_ = hg_log::ini_get("path", "final_img"); if(final_path_.empty()) @@ -249,8 +250,8 @@ hg_scanner::~hg_scanner() delete custom_gamma_val_; hg_imgproc::release(ImagePrc_pHandle_); - name_.insert(0, STATU_DESC_SCANNER_ERR_DEVICE_DEVS); - name_ += STATU_DESC_SCANNER_ERR_DEVICE_IS_CLOSE; + name_.insert(0, hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_DEVS)); + name_ += hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_IS_CLOSE); notify_ui_working_status(name_.c_str(), SANE_EVENT_SCANNER_CLOSED); VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "%s(%s) destroyed.\n", name_.c_str(), hg_log::format_ptr(this).c_str()); } @@ -831,7 +832,7 @@ bool hg_scanner::check_paper_and_resolution(int res, int paper) } bool hg_scanner::check_resolution_and_quality(int res, const char* quality) { - if (res == 600 && strcmp(quality, OPTION_VALUE_HZ_SDYX) == 0) + if (res == 600 && strcmp(quality, hg_log::lang_load(ID_OPTION_VALUE_HZ_SDYX)) == 0) { VLOG_MINI_2(LOG_LEVEL_WARNING, "resolution '%d' is in-compatible with quality '%s'\n", res, quality); @@ -990,7 +991,7 @@ void hg_scanner::working_begin(void*) stop_fatal_ = SCANNER_ERR_OK; final_img_index_ = 0; status_ = SCANNER_ERR_OK; - notify_ui_working_status(STATU_DESC_SCAN_WORKING, SANE_EVENT_WORKING, SCANNER_ERR_OK); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCAN_WORKING), SANE_EVENT_WORKING, SCANNER_ERR_OK); VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "[%s] scanning ...\n", hg_log::current_time().c_str()); } void hg_scanner::working_done(void*) @@ -1005,76 +1006,76 @@ void hg_scanner::working_done(void*) switch (status_) { case SCANNER_ERR_OK: - notify_ui_working_status(STATU_DESC_SCAN_STOPPED, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCAN_STOPPED), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_BUSY: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_PC_BUSY, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_PC_BUSY), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_STOPPED: - notify_ui_working_status(STATU_DESC_SCAN_STOPPED, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCAN_STOPPED), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_COVER_OPENNED: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_COVER_OPENNED, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_COVER_OPENNED), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_NO_PAPER: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_FEEDING_PAPER: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_FEEDING_PAPER, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_FEEDING_PAPER), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_NOT_FOUND: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NOT_FOUND, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NOT_FOUND), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_SLEEPING: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_COUNT_MODE: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_COUNT_MODE, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_COUNT_MODE), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_DOUBLE_FEEDING: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_DOUBLE_FEEDING, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_DOUBLE_FEEDING), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_PAPER_JAMMED: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_PAPER_JAMMED, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_PAPER_JAMMED), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_STAPLE_ON: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_STAPLE_ON, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_STAPLE_ON), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_PAPER_SKEW: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_PAPER_SKEW, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_PAPER_SKEW), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_SIZE_CHECK: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_SIZE_CHECK, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_SIZE_CHECK), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_DOGEAR: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_DOGEAR, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_DOGEAR), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_NO_IMAGE: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NO_IMAGE, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NO_IMAGE), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_SCANN_ERROR: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_SCANN_ERROR, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_SCANN_ERROR), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_PC_BUSY: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_PC_BUSY, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_PC_BUSY), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_INSUFFICIENT_MEMORY: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_INSUFFICIENT_MEMORY, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_INSUFFICIENT_MEMORY), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_TIMEOUT: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_TIMEOUT, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_TIMEOUT), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_ISLOCK: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_ISLOCK, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_ISLOCK), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_AUTO_FAIL_OVER: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_AUTO_FAIL_OVER, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_AUTO_FAIL_OVER), SANE_EVENT_SCAN_FINISHED, status_); break; case SCANNER_ERR_DEVICE_DISTORTION: - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_DISTORTION, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_DISTORTION), SANE_EVENT_SCAN_FINISHED, status_); break; default: - notify_ui_working_status(user_cancel_ ? STATU_DESC_SCAN_CANCELED : STATU_DESC_SCAN_STOPPED, SANE_EVENT_SCAN_FINISHED, status_); + notify_ui_working_status(user_cancel_ ? hg_log::lang_load(ID_STATU_DESC_SCAN_CANCELED) : hg_log::lang_load(ID_STATU_DESC_SCAN_STOPPED), SANE_EVENT_SCAN_FINISHED, status_); break; } @@ -1858,7 +1859,7 @@ int hg_scanner::setting_scan_mode(void* data) bool exact = check_range(SANE_STD_OPT_NAME_SCAN_MODE, str); int ret = exact ? SCANNER_ERR_OK : SCANNER_ERR_NOT_EXACT; - if (strcmp(str.c_str(), OPTION_VALUE_SMZS_LXSM) == 0) + if (strcmp(str.c_str(), hg_log::lang_load(ID_OPTION_VALUE_SMZS_LXSM)) == 0) { scan_count_ = -1; } @@ -1877,7 +1878,7 @@ int hg_scanner::setting_scan_count(void* data) std::string val(""); setting_jsn_.at(SANE_STD_OPT_NAME_SCAN_MODE).at("cur").get_to(val); - if (val == OPTION_VALUE_SMZS_LXSM) + if (val == hg_log::lang_load(ID_OPTION_VALUE_SMZS_LXSM)) { scan_count_ = -1; } @@ -2140,7 +2141,7 @@ int hg_scanner::setting_auto_paper_scan(void* data) if (!is_kernelsnap_220430_ && is_auto_paper_scan) { is_auto_paper_scan = *(bool*)data = false; - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NOT_SUPPORTED, SANE_EVENT_ERROR, status_); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NOT_SUPPORTED), SANE_EVENT_ERROR, status_); return SCANNER_ERR_DEVICE_NOT_SUPPORT; } @@ -2497,7 +2498,7 @@ std::shared_ptr hg_scanner::aquire_memory(int size, bool from_usb) { mem.reset(); LOG_INFO(LOG_LEVEL_FATAL, "Can't aquire enough memory, working must be stopped!\n"); - notify_ui_working_status(STATU_DESC_SCANNER_ERR_INSUFFICIENT_MEMORY, SANE_EVENT_ERROR, SCANNER_ERR_INSUFFICIENT_MEMORY); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_INSUFFICIENT_MEMORY), SANE_EVENT_ERROR, SCANNER_ERR_INSUFFICIENT_MEMORY); stop(); } @@ -2539,7 +2540,7 @@ bool hg_scanner::waiting_for_memory_enough(unsigned need_bytes) if (first) { VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "Memory is too small for aquiring image(%u bytes), wait for ENOUGH ...\n", need_bytes); - notify_ui_working_status(STATU_DESC_WAIT_FOR_MEM); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_WAIT_FOR_MEM)); first = false; } std::this_thread::sleep_for(std::chrono::milliseconds(30)); @@ -2926,6 +2927,19 @@ int hg_scanner::get_setting(const char* name, char* json_txt_buf, int* len, int* } else { + //json_name.find(real_n) + auto it = json_name.find(real_n); + if (it != json_name.end()) + { + int i = it->second; + + const char* load = hg_log::lang_load(i); + if (load) + { + setting_jsn_.at(real_n).at("title") = load; + } + + } std::string text(setting_jsn_.at(real_n).dump()); text.insert(0, "\"" + real_n + "\":"); diff --git a/hgdriver/hgdev/hg_scanner_200.cpp b/hgdriver/hgdev/hg_scanner_200.cpp index 34cabda..73eadef 100644 --- a/hgdriver/hgdev/hg_scanner_200.cpp +++ b/hgdriver/hgdev/hg_scanner_200.cpp @@ -277,7 +277,7 @@ int hg_scanner_200::start(void) { status_ = ret = SCANNER_ERR_DEVICE_NO_PAPER; //notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER, SANE_EVENT_ERROR, status_); - VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER); + VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER)); return ret; } diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index e8a8082..86c7bc4 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -949,7 +949,7 @@ void hg_scanner_239::thread_correction(void) if (sw.elapsed_s() == 60) { status_ = ret; - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_FAIL_OUTTIME, SANE_EVENT_ERROR, ret); // 通信超时 + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_FAIL_OUTTIME), SANE_EVENT_ERROR, ret); // 通信超时 VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "设备校正超时 '%s'\n", hg_scanner_err_name(status_)); break; } @@ -1011,13 +1011,13 @@ void hg_scanner_239::thread_get_dves_image(void) if (img_conf_.resolution_dst == 600.0 && ++to_cnt > 50 && !is_auto_paper_scan) { status_ = ret; - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_GET_IMAGE_OUTTIME, SANE_EVENT_ERROR, ret); // 取图通信超时 + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_GET_IMAGE_OUTTIME), SANE_EVENT_ERROR, ret); // 取图通信超时 VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, " > 600DPI:%s\n", hg_scanner_err_name(status_)); break; } else if (img_conf_.resolution_dst < 600.0 && ++to_cnt > 20 && !is_auto_paper_scan) { - notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_GET_IMAGE_OUTTIME, SANE_EVENT_ERROR, ret); // 取图通信超时 + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_GET_IMAGE_OUTTIME), SANE_EVENT_ERROR, ret); // 取图通信超时 VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "< 600DPI:%s\n", hg_scanner_err_name(status_)); break; } @@ -1143,7 +1143,7 @@ void hg_scanner_239::thread_get_dves_image(void) ret = status_; else status_ = ret = SCANNER_ERR_USER_CANCELED; - VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "%s:%s\n", STATU_DESC_SCANNER_ERR_DEVICE_GET_USER_CANCEL_SCAN, hg_scanner_err_name(status_)); + VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "%s:%s\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_GET_USER_CANCEL_SCAN), hg_scanner_err_name(status_)); auoto_paper_indx = 0; break; } @@ -1168,7 +1168,7 @@ void hg_scanner_239::thread_get_dves_image(void) //string str = "当前批次扫描完成(第"+to_string(++auoto_paper_indx)+"批)"; //string str = "\345\275\223\345\211\215\346\211\271\346\254\241\346\211\253\346\217\217\345\256\214\346\210\220(\347\254\254" + to_string(++auoto_paper_indx) + "\346\211\271)"; - string str = STATU_DESC_SCANNER_ERR_DEVICE_ROUND_SACN_OVER; + string str = hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_ROUND_SACN_OVER); str += ":" + to_string(++auoto_paper_indx); if (is_auto_paper_scan) notify_ui_working_status(str.c_str(), SANE_EVENT_STATUS, status_); @@ -1242,7 +1242,7 @@ int hg_scanner_239::start(void) cb_mem_ = true; VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO, "scanner status: 0x%x\n", get_status()); - notify_ui_working_status(STATU_DESC_PREPARE_START); + notify_ui_working_status(hg_log::lang_load(ID_STATU_DESC_PREPARE_START)); reset(); //ret = get_roller_num(val); @@ -1252,7 +1252,7 @@ int hg_scanner_239::start(void) if (!val) { status_ = SCANNER_ERR_DEVICE_SLEEPING; - VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING); + VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING)); if(is_kernelsnap_220830_) ret = set_notify_sleep(); //notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NOTIFY_SLEEP, SANE_EVENT_ERROR, status_); diff --git a/hgdriver/hgdev/hg_scanner_300.cpp b/hgdriver/hgdev/hg_scanner_300.cpp index 340495b..4b00214 100644 --- a/hgdriver/hgdev/hg_scanner_300.cpp +++ b/hgdriver/hgdev/hg_scanner_300.cpp @@ -265,7 +265,7 @@ int hg_scanner_300::start(void) status_ = SCANNER_ERR_DEVICE_SLEEPING; //notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING, SANE_EVENT_ERROR, status_); //notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NOTIFY_SLEEP, SANE_EVENT_ERROR, status_); - VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING); + VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING)); return status_; } //ret = get_scanner_paperon(val); diff --git a/hgdriver/hgdev/hg_scanner_400.cpp b/hgdriver/hgdev/hg_scanner_400.cpp index d3e182c..0a0f2a9 100644 --- a/hgdriver/hgdev/hg_scanner_400.cpp +++ b/hgdriver/hgdev/hg_scanner_400.cpp @@ -240,7 +240,7 @@ int hg_scanner_400::start(void) status_ = SCANNER_ERR_DEVICE_SLEEPING; //notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING, SANE_EVENT_ERROR, status_); //notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NOTIFY_SLEEP, SANE_EVENT_ERROR, status_); - VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING); + VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_SLEEPING)); return status_; } ret = get_scanner_paperon(val); @@ -248,7 +248,7 @@ int hg_scanner_400::start(void) { status_ = SCANNER_ERR_DEVICE_NO_PAPER; //notify_ui_working_status(STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER, SANE_EVENT_ERROR, status_); - VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER); + VLOG_MINI_1(LOG_LEVEL_WARNING, "device start status is(%s)\n", hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_NO_PAPER)); return status_; } diff --git a/hgdriver/wrapper/hg_log.cpp b/hgdriver/wrapper/hg_log.cpp index f83ea1b..01d583e 100644 --- a/hgdriver/wrapper/hg_log.cpp +++ b/hgdriver/wrapper/hg_log.cpp @@ -764,6 +764,19 @@ extern "C" { return GetMemoryUsage(getpid()); } + + const char* lang_load(uint32_t id) + { + int err = 0; + const char *lang = lang_load_string(id, &err); + if (err != 0) + { + return NULL; + } + return lang; + } + + } #ifdef EXPORT_AS_C } diff --git a/hgdriver/wrapper/hg_log.h b/hgdriver/wrapper/hg_log.h index ed8137c..d0c952f 100644 --- a/hgdriver/wrapper/hg_log.h +++ b/hgdriver/wrapper/hg_log.h @@ -7,7 +7,7 @@ #include #include "../../sdk/hginclude/huagaoxxx_warraper_ex.h" - +#include "../../code_lang/app_language.h" #if defined(WIN32) || defined(_WIN64) #define bzero(a, l) memset(a, 0, l) #define PATH_SEPARATOR "\\" @@ -58,6 +58,7 @@ extern "C" std::string get_scanimage_ver(); float GetMemoryUsage(int pid); float GetAppMemoryUsage(); + const char* lang_load(uint32_t id); unsigned int get_page_size(unsigned int* map_unit = nullptr); unsigned long long available_memory(void); void str_tolower(std::string& str); diff --git a/hgdriver/wrapper/huagaoxxx_warraper_ex.cpp b/hgdriver/wrapper/huagaoxxx_warraper_ex.cpp index 84c81c3..5508c37 100644 --- a/hgdriver/wrapper/huagaoxxx_warraper_ex.cpp +++ b/hgdriver/wrapper/huagaoxxx_warraper_ex.cpp @@ -297,7 +297,7 @@ extern "C" // NOTE: multi-thread unsafe here static char g_unk_err[80] = { 0 }; - strcpy(g_unk_err, STATU_DESC_SCANNER_ERR_DEVICE_UNKNOWN_ERROR); + strcpy(g_unk_err, hg_log::lang_load(ID_STATU_DESC_SCANNER_ERR_DEVICE_UNKNOWN_ERROR)); sprintf(g_unk_err + strlen(g_unk_err), ":0x%x", err); return g_unk_err;