int ps_config_load( void ) { u8 root[ MAX_PATH ]; u8 * point; INI_FILE * ini; sys_get_path( root, MAX_PATH ); //»ñÈ¡Ó¦ÓóÌÐò·¾¶ point = strrchr( root, '\\' ); //Ñ°ÕÒ·¾¶·Ö¸ô·û if( point == NULL ) { point = strrchr( root, '/' ); //³¢ÊÔÑ°ÕÒlinux·Ö¸ô·û } if( point ) { *point = 0; } strcat( root, "\\PicShow.ini" ); ini = ini_file_open( root, INI_OPEN_MODE_READ ); if( ini == NULL ) goto err; ini_config_load( ini, conig_list ); config_load_keymap( ini, "KEYMAP NORMAL", pskeymap_right0, ps_keyname ); config_load_keymap( ini, "KEYMAP RIGHT90", pskeymap_right90, ps_keyname ); config_load_keymap( ini, "KEYMAP RIGHT180", pskeymap_right180, ps_keyname ); config_load_keymap( ini, "KEYMAP RIGHT270", pskeymap_right270, ps_keyname ); ini_file_close( ini ); return 0; err: return -1; }
int platform_load_keymap( const char * section, const char * ini_path, KEYMAP * keymap, KEYNAME * keyname ) { int i = 0; INI_FILE * ini = ini_file_open( ini_path, INI_OPEN_MODE_READ ); if( ini == NULL ) goto err; while( keymap[i].emukey ) { ini_file_read_uint( ini, section, getkeyname(keymap[i].emukey, keyname), &keymap[i].phykey ); i++; } ini_file_close( ini ); return 0; err: TRACE_LOG("error!"); return -1; }
int platform_config_save( const char * ini_path, CONFIG_LIST config_list[] ) { int i; int err; INI_FILE * ini = ini_file_open( ini_path, INI_OPEN_MODE_RW ); if( ini == NULL ) goto err; i = 0; err = ini_config_save( ini, config_list ); if( err ) { ini_file_close( ini ); goto err; } ini_file_close( ini ); return 0; err: return -1; }
int32 ini_write_var_value(int32 modu, int8 * puc_var, int8 * puc_value) { INI_FILE *fp = NULL; int32 l_ret; if (NULL == puc_var || '\0' == puc_var[0] || NULL == puc_value ) { INI_ERROR("check if puc_var and puc_value is NULL or blank"); return INI_FAILED; } if (0 == init_mutex_flag) { INI_INIT_MUTEX(&file_mutex, NULL); init_mutex_flag = 1; } INI_MUTEX_LOCK(&file_mutex); fp = ini_file_open(INI_FILE_PATH, "r+"); if (0 == fp) { INI_ERROR("open %s failed!!!", INI_FILE_PATH); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } l_ret = ini_write_mode_value(fp, modu, puc_var, puc_value); if (INI_FAILED == l_ret) { ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_SUCC; }
static bool ini_file_exist(int8 *file_path) { INI_FILE *fp = NULL; if (NULL == file_path) { INI_ERROR("para file_path is NULL\n"); return false; } fp = ini_file_open(file_path, "rt"); if (NULL == fp) { INI_DEBUG("%s not exist\n", file_path); return false; } ini_file_close(fp); INI_DEBUG("%s exist\n", file_path); return true; }
int32 ini_config_init(int32 modu) { int8 log_status[10] = {0}; int32 log_value; int32 l_ret = INI_FAILED; INI_FILE *fp = NULL; /* init only once */ if (INI_MODU_PLAT != modu) { if (NULL == INI_FILE_PATH) { INI_ERROR("didn't get ini file path!!!"); return INI_FAILED; } strncpy(gac_file, INI_FILE_PATH, INI_VAR_FILE_LEN); gac_file[INI_VAR_FILE_LEN] = '\0'; return INI_SUCC; } INI_DEBUG("open ini file:%s", gac_file); fp = ini_file_open(gac_file, "rt"); if (0 == fp) { INI_ERROR("open %s failed!!!", gac_file); return INI_FAILED; } INI_DEBUG("open %s succ!", gac_file); l_ret = ini_find_var(fp, INI_MODU_PLAT, INI_VAR_LOG_CFG_STATUS, log_status); if (INI_FAILED == l_ret) { ini_file_close(fp); return INI_FAILED; } if (INI_FAILED == ini_check_value(log_status)) { ini_file_close(fp); return INI_FAILED; } sscanf(log_status, "%d", &log_value); if (0 > log_value) { INI_ERROR("log_status value=%d not support!!!", log_value); ini_file_close(fp); return INI_FAILED; } INI_INFO("::log_status value=%d::", log_value); ini_file_close(fp); #if 0 if (INI_VAR_CFG_ENABLE == log_value) { fp = ini_file_open(INI_FILE_PATH, "rt"); if (0 == fp) { INI_ERROR("open %s failed!!!", INI_FILE_PATH); return INI_FAILED; } l_ret = ini_find_var(fp, INI_MODU_PLAT, INI_VAR_LOG_CFG_FILE, gac_cfg_file); if (INI_FAILED == l_ret) { ini_file_close(fp); return INI_FAILED; } if (INI_FAILED == ini_check_value(gac_cfg_file)) { ini_file_close(fp); return INI_FAILED; } //INI_DEBUG("::gac_cfg_file = %s::", gac_cfg_file); strncpy(gac_file, gac_cfg_file, INI_VAR_FILE_LEN); gac_file[INI_VAR_FILE_LEN] = '\0'; if (INI_FAILED == access(gac_file, 0)) { INI_ERROR("%s is not exist, init log control system", gac_file); l_ret = system("/system/bin/set_log_hisi -S init"); if (INI_SUCC!= l_ret) { INI_ERROR("system() run err"); ini_file_close(fp); return INI_FAILED; } } } ini_file_close(fp); #endif return INI_SUCC; }
int32 ini_find_var_value(int32 modu, int8 * puc_var, int8* puc_value, uint32 size) { INI_FILE *fp = NULL; #ifdef INI_KO_MODULE static int32 sl_once = 1; #endif #ifdef INI_TIME_TEST struct timeval tv[2]; #endif int32 l_ret; if (NULL == puc_var || '\0' == puc_var[0] || NULL == puc_value) { INI_ERROR("check if puc_var and puc_value is NULL or blank"); return INI_FAILED; } #ifdef INI_TIME_TEST do_gettimeofday(&tv[0]); #endif #ifndef INI_KO_MODULE if (0 == init_mutex_flag) { INI_INIT_MUTEX(&file_mutex, NULL); init_mutex_flag = 1; } #endif INI_MUTEX_LOCK(&file_mutex); #ifndef INI_KO_MODULE l_ret = ini_config_init(modu); if (INI_FAILED == l_ret) { INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } #endif fp = ini_file_open(INI_FILE_PATH, "rt"); if (0 == fp) { fp = NULL; INI_ERROR("open %s failed!!!", INI_FILE_PATH); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } #ifdef INI_KO_MODULE /* init g_board_version.board_version and g_param_version.param_version * just once while call ini_find_var_value */ if (sl_once) { print_device_version(fp); sl_once = 0; } #endif l_ret = ini_find_mode(fp, modu, puc_var, puc_value, size); if (INI_FAILED == l_ret) { ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } else if (INI_SUCC_MODE_VAR == l_ret) { INI_DEBUG("::return %s:%s::", puc_var, puc_value); ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return ini_check_value(puc_value); } /* find puc_var in .ini return puc_value */ l_ret = ini_find_var(fp, modu, puc_var, puc_value, size); if (INI_FAILED == l_ret) { puc_value[0] = '\0'; ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } #ifdef INI_TIME_TEST do_gettimeofday(&tv[1]); INI_DEBUG("time take = %ld", (tv[1].tv_sec - tv[0].tv_sec) * 1000 + (tv[1].tv_usec - tv[0].tv_usec) / 1000); #endif ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); /* check blank space of puc_value */ if (INI_SUCC == ini_check_value(puc_value)) { INI_DEBUG("::return %s:%s::", puc_var, puc_value); return INI_SUCC; } return INI_FAILED; }
int32 ini_find_var_value(int32 modu, int8 * puc_var, int8* puc_value) { INI_FILE *fp = NULL; #ifdef INI_KO_MODULE static int32 sl_once = 1; #endif #ifdef INI_TIME_TEST struct timeval tv[2]; #endif int32 l_ret; if (NULL == puc_var || '\0' == puc_var[0] || NULL == puc_value) { INI_ERROR("check if puc_var and puc_value is NULL or blank"); return INI_FAILED; } #ifdef INI_TIME_TEST do_gettimeofday(&tv[0]); #endif #ifndef INI_KO_MODULE if (0 == init_mutex_flag) { INI_INIT_MUTEX(&file_mutex, NULL); init_mutex_flag = 1; } #endif INI_MUTEX_LOCK(&file_mutex); strncpy(gac_file, INI_FILE_PATH, INI_VAR_FILE_LEN); gac_file[INI_VAR_FILE_LEN] = '\0'; #ifndef INI_KO_MODULE l_ret = ini_config_init(modu); if (INI_FAILED == l_ret) { INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } #endif fp = ini_file_open(gac_file, "rt"); if (0 == fp) { fp = NULL; INI_ERROR("open %s failed!!!", INI_FILE_PATH); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } #ifdef INI_KO_MODULE /* init g_board_version.board_version and g_param_version.param_version * just once while call ini_find_var_value */ if (sl_once) { int8 version_buff[32] = {0}; INI_DEBUG("sl_once = %d", sl_once); sl_once = 0; l_ret = ini_find_var(fp, INI_MODU_PLAT, INI_VAR_PLAT_BOARD, version_buff); if (INI_FAILED == l_ret) { version_buff[0] = '\0'; ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } if (INI_FAILED == ini_check_value(version_buff)) { ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } memset(g_board_version.board_version, 0, sizeof(g_board_version.board_version)); strncpy(g_board_version.board_version, version_buff, sizeof(g_board_version.board_version) - 1); INI_DEBUG("::g_board_version.board_version = %s::", g_board_version.board_version); fp->f_pos = 0; l_ret = ini_find_var(fp, INI_MODU_PLAT, INI_VAR_PLAT_PARAM, version_buff); if (INI_FAILED == l_ret) { version_buff[0] = '\0'; ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } if (INI_FAILED == ini_check_value(version_buff)) { ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } INI_DEBUG("::g_param_version.param_version = %s::", g_param_version.param_version); memset(g_param_version.param_version, 0, sizeof(g_param_version.param_version)); strncpy(g_param_version.param_version, version_buff, sizeof(g_param_version.param_version) - 1); fp->f_pos = 0; } #endif l_ret = ini_find_mode(fp, modu, puc_var, puc_value); if (INI_FAILED == l_ret) { ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } else if (INI_SUCC_MODE_VAR == l_ret) { INI_DEBUG("::return %s:%s::", puc_var, puc_value); ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return ini_check_value(puc_value); } /* find puc_var in .ini return puc_value */ l_ret = ini_find_var(fp, modu, puc_var, puc_value); if (INI_FAILED == l_ret) { puc_value[0] = '\0'; ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); return INI_FAILED; } #ifdef INI_TIME_TEST do_gettimeofday(&tv[1]); INI_DEBUG("time take = %ld", (tv[1].tv_sec - tv[0].tv_sec) * 1000 + (tv[1].tv_usec - tv[0].tv_usec) / 1000); #endif ini_file_close(fp); INI_MUTEX_UNLOCK(&file_mutex); /* check blank space of puc_value */ if (INI_SUCC == ini_check_value(puc_value)) { INI_DEBUG("::return %s:%s::", puc_var, puc_value); return INI_SUCC; } return INI_FAILED; }