コード例 #1
0
/*********************
return RET_NOK on error
*********************/
static ret_code_t __write_list(const char * table, const char * file, char ** data, va_list ap)
{
	config_setting_t * setting;
	const config_t * config;
	int i=0;

	SDL_LockMutex(entry_mutex);
	config = get_config(table,file);
	if(config==NULL) {
		SDL_UnlockMutex(entry_mutex);
		return RET_NOK;
	}

	setting = create_tree(config,NULL,NULL,NULL,CONFIG_TYPE_ARRAY,ap);

	while(data[i] != NULL) {
		// First try to update existing setting
		if(config_setting_set_string_elem(setting,i,data[i])==NULL) {
			// If it down not exist, add a new setting at the end of the list
			if(config_setting_set_string_elem(setting,-1,data[i])==NULL) {
				SDL_UnlockMutex(entry_mutex);
				return RET_NOK;
			}
		}
		i++;
	}

	write_config(config,table,file);
	SDL_UnlockMutex(entry_mutex);

	return RET_OK;
}
コード例 #2
0
/*********************
return RET_NOK on error
*********************/
static ret_code_t __write_list_index(const char * table, const char * file, const char * data, int index, va_list ap)
{
	config_setting_t * setting = NULL;
	const config_t * config;
	int list_size;


	SDL_LockMutex(entry_mutex);
	config = get_config(table,file);
	if(config==NULL) {
		SDL_UnlockMutex(entry_mutex);
		return RET_NOK;
	}

	setting = create_tree(config,NULL,NULL,NULL,CONFIG_TYPE_ARRAY,ap);

	// Create empty entry before index
	list_size = config_setting_length (setting);
	while( list_size <= index ) {
		if(config_setting_set_string_elem(setting,-1,"")==NULL) {
			SDL_UnlockMutex(entry_mutex);
			return RET_NOK;
		}
		list_size++;
	}

	if(config_setting_set_string_elem(setting,index,data)==NULL) {
		SDL_UnlockMutex(entry_mutex);
		return RET_NOK;
	}

	write_config(config,table,file);
	SDL_UnlockMutex(entry_mutex);
	return RET_OK;
}
コード例 #3
0
ファイル: conf.c プロジェクト: DeveloperSam0219/Project3
void config_setting_copy_elem(config_setting_t *parent, const config_setting_t *src)
{
	config_setting_t *set = NULL;

	if (config_setting_is_aggregate(src))
		config_setting_copy_aggregate(parent, src);
	else if (CONFIG_TYPE_INT == config_setting_type(src)) {
		set = config_setting_set_int_elem(parent, -1, config_setting_get_int(src));
		config_setting_set_format(set, src->format);
	} else if (CONFIG_TYPE_INT64 == config_setting_type(src)) {
		set = config_setting_set_int64_elem(parent, -1, config_setting_get_int64(src));
		config_setting_set_format(set, src->format);   
	} else if (CONFIG_TYPE_FLOAT == config_setting_type(src)) {
		config_setting_set_float_elem(parent, -1, config_setting_get_float(src));
	} else if (CONFIG_TYPE_STRING == config_setting_type(src)) {
		config_setting_set_string_elem(parent, -1, config_setting_get_string(src));
	} else if (CONFIG_TYPE_BOOL == config_setting_type(src)) {
		config_setting_set_bool_elem(parent, -1, config_setting_get_bool(src));
	}
}
コード例 #4
0
/*********************
return RET_NOK on error
*********************/
static ret_code_t __add_to_list(const char * table, const char * file, const char * to_be_added, va_list ap)
{
	const config_t * config = NULL;
	config_setting_t * setting = NULL;
	char * path;

	SDL_LockMutex(entry_mutex);
	config = get_config(table,file);
	if(config==NULL) {
		SDL_UnlockMutex(entry_mutex);
		return RET_NOK;
	}

	path = get_path(ap);
	if(path == NULL) {
		SDL_UnlockMutex(entry_mutex);
		return RET_NOK;
	}

	setting = config_lookup (config, path);
	if( setting == NULL ) {
		SDL_UnlockMutex(entry_mutex);
		free(path);
		return RET_NOK;
	}
	free(path);

	if(config_setting_set_string_elem(setting,-1,to_be_added)==NULL) {
		SDL_UnlockMutex(entry_mutex);
		return RET_NOK;
	}

	write_config(config,table,file);
	SDL_UnlockMutex(entry_mutex);

	return RET_OK;
}
コード例 #5
0
config_setting_t *cfgAddString(config_setting_t * setting, const TCHAR * value)
{
	char cfgStr[CONFIG_UTF8_MAXSTRING];

	return config_setting_set_string_elem(setting, -1, UTF8_Encode(value, cfgStr, CONFIG_UTF8_MAXSTRING));
}
コード例 #6
0
ファイル: settings.c プロジェクト: TheKeyboardist/interface
void settings_add_to_config(config_t *config)
{

    int i;

    char value[256];

    config_setting_t *root;
    config_setting_t *ps2;
    config_setting_t *group;

    config_setting_t *setting;

    if (config == NULL)
    {
        return;
    }

    root = config_root_setting(config);

    ps2 = config_setting_add(root,"PS2", CONFIG_TYPE_GROUP);
    {

        group = config_setting_add(ps2,"Home",CONFIG_TYPE_GROUP);
        {

            setting = config_setting_add(group,"Partition",CONFIG_TYPE_STRING);
            config_setting_set_string(setting,settings.home.partition);

            setting = config_setting_add(group,"Directory",CONFIG_TYPE_STRING);
            config_setting_set_string(setting,settings.home.directory);

        }

        group = config_setting_add(ps2,"Display", CONFIG_TYPE_GROUP);
        {


            setting = config_setting_add(group,"OffsetX",CONFIG_TYPE_STRING);
            cfg_int_to_string(value,settings.display.x);
            config_setting_set_string(setting,value);

            setting = config_setting_add(group,"OffsetY",CONFIG_TYPE_STRING);
            cfg_int_to_string(value,settings.display.y);
            config_setting_set_string(setting,value);

            setting = config_setting_add(group,"Mode",CONFIG_TYPE_STRING);
            cfg_int_to_string(value,settings.display.mode);
            config_setting_set_string(setting,value);

            setting = config_setting_add(group,"Interlace",CONFIG_TYPE_BOOL);
            config_setting_set_bool(setting,settings.display.interlace);

        }

        group = config_setting_add(ps2,"Sound",CONFIG_TYPE_GROUP);
        {

            setting = config_setting_add(group,"Stereo",CONFIG_TYPE_BOOL);
            config_setting_set_bool(setting,settings.sound.stereo);

            setting = config_setting_add(group,"Volume",CONFIG_TYPE_STRING);
            cfg_int_to_string(value,settings.sound.volume);
            config_setting_set_string(setting,value);

        }

        group = config_setting_add(ps2,"Font",CONFIG_TYPE_GROUP);
        {

            setting = config_setting_add(group,"Height",CONFIG_TYPE_STRING);
            cfg_int_to_string(value,settings.font.height);
            config_setting_set_string(setting,value);

            setting = config_setting_add(group,"Color",CONFIG_TYPE_ARRAY);
            for (i = 0; i < 4; i++)
            {
                cfg_int_to_string(value,settings.font.color[i]);
                config_setting_set_string_elem(setting,-1,value);
            }

            setting = config_setting_add(group,"Highlight",CONFIG_TYPE_ARRAY);
            for (i = 0; i < 4; i++)
            {
                cfg_int_to_string(value,settings.font.highlight[i]);
                config_setting_set_string_elem(setting,-1,value);
            }
        }

        group = config_setting_add(ps2,"Input",CONFIG_TYPE_GROUP);
        {

            setting = config_setting_add(group,"Port",CONFIG_TYPE_STRING);
            cfg_int_to_string(value,settings.input.port);
            config_setting_set_string(setting,value);

            setting = config_setting_add(group,"Slot",CONFIG_TYPE_STRING);
            cfg_int_to_string(value,settings.input.slot);
            config_setting_set_string(setting,value);

            setting = config_setting_add(group,"Confirm",CONFIG_TYPE_STRING);
            if (settings.input.confirm == PAD_CROSS)
            {
                config_setting_set_string(setting,"X");
            }
            else
            {
                config_setting_set_string(setting,"O");
            }

        }

        group = config_setting_add(ps2,"Devices",CONFIG_TYPE_GROUP);
        {

            setting = config_setting_add(group,"Mass",CONFIG_TYPE_BOOL);
            config_setting_set_bool(setting,settings.devices.mass);

            setting = config_setting_add(group,"HDD",CONFIG_TYPE_BOOL);
            config_setting_set_bool(setting,settings.devices.hdd);

        }

    }

}