/* * set_option -- (internal) set single config option */ static int set_option(enum rpmemd_option option, const char *value, struct rpmemd_config *config) { errno = 0; switch (option) { case RPD_OPT_LOG_FILE: free(config->log_file); config->log_file = parse_config_string(value); config->use_syslog = false; break; case RPD_OPT_POOLSET_DIR: free(config->poolset_dir); config->poolset_dir = parse_config_string(value); break; case RPD_OPT_PERSIST_APM: parse_config_bool(&config->persist_apm, value); break; case RPD_OPT_PERSIST_GENERAL: parse_config_bool(&config->persist_general, value); break; case RPD_OPT_USE_SYSLOG: parse_config_bool(&config->use_syslog, value); break; case RPD_OPT_LOG_LEVEL: config->log_level = rpmemd_log_level_from_str(value); if (config->log_level == MAX_RPD_LOG) errno = EINVAL; break; default: errno = EINVAL; } if (errno != 0) return 1; else return 0; }
/* * set_option -- set single config option */ static int set_option(uint64_t key, const char *value, struct rpmemd_config *config) { switch (key) { case RPD_OPT_PID_FILE: free(config->pid_file); config->pid_file = parse_config_string(value); break; case RPD_OPT_LOG_FILE: free(config->log_file); config->log_file = parse_config_string(value); break; case RPD_OPT_POOLSET_DIR: free(config->poolset_dir); config->poolset_dir = parse_config_string(value); break; case RPD_OPT_ENABLE_CREATE: parse_config_bool(&config->enable_create, value); break; case RPD_OPT_ENABLE_REMOVE: parse_config_bool(&config->enable_remove, value); break; case RPD_OPT_PERSIST_APM: parse_config_bool(&config->persist_apm, value); break; case RPD_OPT_PERSIST_GENERAL: parse_config_bool(&config->persist_general, value); break; case RPD_OPT_PROVIDER_SOCKETS: parse_config_bool(&config->provider_sockets, value); break; case RPD_OPT_PROVIDER_VERBS: parse_config_bool(&config->provider_verbs, value); break; case RPD_OPT_USE_SYSLOG: parse_config_bool(&config->use_syslog, value); break; case RPD_OPT_VERIFY_POOL_SETS: parse_config_bool(&config->verify_pool_sets, value); if (errno == 0) config->verify_pool_sets_auto = false; else if (strcmp("auto", value) == 0) { config->verify_pool_sets_auto = true; errno = 0; } break; case RPD_OPT_PORT: config->port = (uint16_t)parse_config_integer(value, UINT16_MAX); break; case RPD_OPT_MAX_LANES: config->max_lanes = (uint32_t)parse_config_integer(value, UINT32_MAX); break; case RPD_OPT_LOG_LEVEL: config->log_level = rpmemd_log_level_from_str(value); if (config->log_level == MAX_RPD_LOG) errno = EINVAL; break; default: errno = EINVAL; } if (errno != 0) return 1; else return 0; }
int main(int argc, char **argv) { int i = 0; int result = -1; int enable = 1; VPSS_IMG_QUALITY_CFG_S stImgQualityCfg; VPSS_IMG_QUALITY_PARAM_S *pstImgQualityParam; VPSS_GRP VpssGrp = 0; VPSS_CHN VpssChn = 0; if (argc < 3) { printf("no input param\n"); USAGE_HELP(); return -1; } pstImgQualityParam = &stImgQualityCfg.stImageQualityParam; printf("%s %d\n", __func__, __LINE__); #if 1 //get group 0,channel 0 as default. result = HI_MPI_VPSS_GetImageQualityCfg(VpssGrp, VpssChn, &stImgQualityCfg); CHECK_RET(result, "HI_MPI_VPSS_GetImgQualityParam"); for (i = 1; i < argc; i++) { if (!strcmp("-f", argv[i])) { i++; char *file_name = argv[i]; result = parse_config_file(file_name, pstImgQualityParam); } else if (!strcmp("-s", argv[i])) { i++; char *string = argv[i]; result = parse_config_string(string, pstImgQualityParam); } else if (!strcmp("-g", argv[i])) { i++; VpssGrp = atoi(argv[i]); if (VpssGrp > VPSS_MAX_GRP_NUM || VpssGrp < 0) { printf("invalid group num %d", VpssGrp); return -1; } } else if (!strcmp("-c", argv[i])) { i++; VpssChn = atoi(argv[i]); if (VpssChn > VPSS_MAX_GRP_NUM || VpssChn < 0) { printf("invalid chn num %d", VpssChn); return -1; } /*if grp, chnl exist, get new debug param*/ result = HI_MPI_VPSS_GetImageQualityCfg(VpssGrp, VpssChn, &stImgQualityCfg); CHECK_RET(result, "HI_MPI_VPSS_GetImgQualityParam"); } else if (!strcmp("off", argv[i])) { i++; printf("\tdisable Image quality Cfg!!\n"); enable = 0; } else { printf("invalid options %s\n", argv[i]); result = -1; } if (result < 0) { return result; } } if (enable) { stImgQualityCfg.bEnable = HI_TRUE; printf("\t\t tf %d\n", pstImgQualityParam->u32TfStrength); printf("\t\t tf_y_pro %d\n", pstImgQualityParam->u32TfyProfile); printf("\t\t sf_post_flag %d\n", pstImgQualityParam->u32SfPostFlag); printf("\t\t c_range %d\n", pstImgQualityParam->u32CStrength); printf("\t\t c_mad_thresh %d\n", pstImgQualityParam->u32CMADThresh); printf("\t\t c_mad_slope %d\n", pstImgQualityParam->u32CMADSlope); printf("\t\t s0 %d\n", pstImgQualityParam->u32SfStrength0); printf("\t\t s1 %d\n", pstImgQualityParam->u32SfStrength1); printf("\t\t s2 %d\n", pstImgQualityParam->u32SfStrength2); } else { stImgQualityCfg.bEnable = HI_FALSE; } result = HI_MPI_VPSS_SetImageQualityCfg(VpssGrp, VpssChn, &stImgQualityCfg); CHECK_RET(result, "HI_MPI_VPSS_SetImgQualityCfg"); #endif return 0; }