コード例 #1
0
ファイル: ps_config.c プロジェクト: arsane/mp4sdk
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;
}
コード例 #2
0
int32 write_conf_to_file(int8* name, int8 * pc_arr)
{
    INI_FILE * fp;
    int32 len;

#ifdef INI_KO_MODULE
    fp = filp_open(NVRAM_CUST_FILE, O_CREAT|O_RDWR, 0664);
	if (IS_ERR(fp))
    {
        INI_DEBUG("open %s failed", NVRAM_CUST_FILE);
        return INI_FAILED;
    }
#else
	fp = fopen(NVRAM_CUST_FILE, "w+");
	if (NULL == fp)
    {
        INI_DEBUG("open %s failed!:%s ", NVRAM_CUST_FILE, strerror(errno));
        return INI_FAILED;
    }
#endif

    INI_DEBUG("open %s succ", NVRAM_CUST_FILE);

#ifdef INI_KO_MODULE
    len = kernel_write(fp, pc_arr, HISI_CUST_NVRAM_LEN, 0);
#else
	len = fwrite(pc_arr, 1, HISI_CUST_NVRAM_LEN, fp);
#endif
    INI_DEBUG("write len:%d", len);

    ini_file_close(fp);

    return INI_SUCC;
}
コード例 #3
0
int32 read_conf_from_file(int8 * name, int8* pc_arr, uint32 size)
{
    INI_FILE * fp;
    int32 len;
    uint32 read_len = 0;

#ifdef INI_KO_MODULE
    fp = filp_open(NVRAM_CUST_FILE, O_RDONLY, 0660);
    if (IS_ERR(fp))
#else
        fp = fopen(NVRAM_CUST_FILE, "r");
    if (NULL == fp)
#endif
    {
#ifdef INI_KO_MODULE
        INI_DEBUG("open %s failed", NVRAM_CUST_FILE);
#else
        INI_DEBUG("open %s failed, errno is %s", NVRAM_CUST_FILE, strerror(errno));
#endif
        return INI_FAILED;
    }

    INI_DEBUG("open %s succ", NVRAM_CUST_FILE);

#ifdef INI_KO_MODULE
    read_len = INI_MIN(size, NUM_OF_NV_PARAMS);
    len = kernel_read(fp, 0, pc_arr, read_len);
#else
    len = fread(pc_arr, 1, HISI_CUST_NVRAM_LEN,  fp);
#endif
    if (len < 0)
    {
        ini_file_close(fp);
#ifdef INI_KO_MODULE
        INI_ERROR("read %s failed, len = %d", NVRAM_CUST_FILE, len);
#else
        INI_ERROR("read %s failed, len = %d, errno is %s", NVRAM_CUST_FILE, len, strerror(errno));
#endif
        return INI_FAILED;
    }
    INI_DEBUG("read %s succ", NVRAM_CUST_FILE);
    ini_file_close(fp);

    return INI_SUCC;
}
コード例 #4
0
ファイル: platform_config.c プロジェクト: arsane/mp4sdk
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;
}
コード例 #5
0
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;
}
コード例 #6
0
ファイル: platform_config.c プロジェクト: arsane/mp4sdk
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;
}
コード例 #7
0
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;
}
コード例 #8
0
 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;
 }
コード例 #9
0
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;
}
コード例 #10
0
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;
}