Beispiel #1
0
void config_setting_copy_simple(config_setting_t *parent, const config_setting_t *src)
{
	if (config_setting_is_aggregate(src)) {
		config_setting_copy_aggregate(parent, src);
	}
	else {
		config_setting_t *set;
		
		if( config_setting_get_member(parent, config_setting_name(src)) != NULL )
			return;
		
		if ((set = config_setting_add(parent, config_setting_name(src), config_setting_type(src))) == NULL)
			return;

		if (CONFIG_TYPE_INT == config_setting_type(src)) {
			config_setting_set_int(set, config_setting_get_int(src));
			config_setting_set_format(set, src->format);
		} else if (CONFIG_TYPE_INT64 == config_setting_type(src)) {
			config_setting_set_int64(set, 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(set, config_setting_get_float(src));
		} else if (CONFIG_TYPE_STRING == config_setting_type(src)) {
			config_setting_set_string(set, config_setting_get_string(src));
		} else if (CONFIG_TYPE_BOOL == config_setting_type(src)) {
			config_setting_set_bool(set, config_setting_get_bool(src));
		}
	}
}
Beispiel #2
0
config_setting_t *config_setting_set_bool_elem(config_setting_t *vector,
                                               int idx, int value)
{
  config_setting_t *element = NULL;

  if((vector->type != CONFIG_TYPE_ARRAY) && (vector->type != CONFIG_TYPE_LIST))
    return(NULL);

  if(idx < 0)
  {
    if(! __config_vector_checktype(vector, CONFIG_TYPE_BOOL))
      return(NULL);

    element = config_setting_create(vector, NULL, CONFIG_TYPE_BOOL);
  }
  else
    element = config_setting_get_elem(vector, idx);

  if(! element)
    return(NULL);

  if(! config_setting_set_bool(element, value))
    return(NULL);

  return(element);
}
Beispiel #3
0
void MainDialog::configSetBool(const char* key, bool val) {
  config_setting_t* setting = config_lookup(&config_, key);
  if(!setting) { // setting not found
    // add a new setting for it
    config_setting_t* root = config_root_setting(&config_);
    setting = config_setting_add(root, key, CONFIG_TYPE_BOOL);
  }
  config_setting_set_bool(setting, val);
}
config_setting_t *cfgSetBool(config_setting_t *parent, const TCHAR *name, int value)
{
	config_setting_t *setting;
	char uName[CONFIG_UTF8_MAXSTRING];

	UTF8_Encode(name, uName, CONFIG_UTF8_MAXSTRING);

	setting = config_setting_add(parent, uName, CONFIG_TYPE_BOOL);
	config_setting_set_bool(setting, value);

	return setting;
}
Beispiel #5
0
//-----------------------------------------------------------------------------
int t_display_save_configuration (config_setting_t *setting, T_Display *d)
{
		config_setting_t *s, *sp = NULL ;
		
		s = config_setting_add(setting, NULL, CONFIG_TYPE_GROUP) ;
		
		sp = config_setting_add(s, "type", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->type);
		sp = config_setting_add(s, "width", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->canvas->allocation.width);
		sp = config_setting_add(s, "height", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->canvas->allocation.height);
		sp = config_setting_add(s, "position_x", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->canvas->allocation.x);
		sp = config_setting_add(s, "position_y", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->canvas->allocation.y);
		
		sp = config_setting_add(s, "time_range", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->time_range);
		sp = config_setting_add(s, "last_time", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->last_time);
		sp = config_setting_add(s, "time_step", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->time_step);
		sp = config_setting_add(s, "temp_max", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->temp_max);
		sp = config_setting_add(s, "temp_min", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->temp_min);
		sp = config_setting_add(s, "temp_step", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->temp_step);
		sp = config_setting_add(s, "font_size", CONFIG_TYPE_INT) ;
		config_setting_set_int(sp, d->font_size);
		sp = config_setting_add(s, "show_legend", CONFIG_TYPE_BOOL) ;
		config_setting_set_bool(sp, d->show_legend);
		
		//		sp = config_setting_add(s, "n_plots", CONFIG_TYPE_INT) ;
		//		config_setting_set_int(sp, g_list_length(d->plots));
		sp = config_setting_add(s, "Plots", CONFIG_TYPE_LIST) ;
		
		GList *tmp = d->plots ;
		while (tmp != NULL) {
				
				t_plot_save_configuration(sp, (T_Plot*)tmp->data) ;
				
				tmp = g_list_next(tmp) ;
		} ;
		
		return 0 ;
} ;
Beispiel #6
0
gboolean
get_verbose ()
{
	gboolean verbose;
	gchar *file;
    config_t config;

    file = g_strconcat (g_getenv ("HOME"),
                               "/.config/gjackctl/gjackctl.conf",
                               NULL);

	config_init (&config);
	config_read_file (&config, file);
	
	if (config_lookup_bool (&config, "gjackctl.server.verbose", &verbose) == CONFIG_FALSE)
    {
        config_setting_t *group;
        config_setting_t *setting;
        
        g_print ("Verbose config option not available\n");
        g_print ("Creating config setting now...\n");

        group = config_lookup (&config, "gjackctl.server");

        setting = config_setting_add (group, "verbose", CONFIG_TYPE_BOOL);
        config_setting_set_bool (setting, FALSE);
        config_write_file (&config, file);       
    }

	if (verbose == FALSE)
	{
		config_destroy (&config);

		return FALSE;
	}
	else
    {
        config_destroy (&config);	

        return TRUE;
   	}
}
Beispiel #7
0
/*********************
return RET_NOK on error
*********************/
ret_code_t entry_copy_config(config_setting_t * source, config_setting_t * dest)
{
	config_setting_t * new_source;
	config_setting_t * new_dest;
	int index = -1;
	int int_value;
	long long long_value;
	double double_value;
	const char * string;

	while((new_source=config_setting_get_elem(source,index+1))!= NULL ) {
		index++;
		if(config_setting_is_group(new_source)) {
			if(!entry_copy_aggregate(new_source,dest,CONFIG_TYPE_GROUP)) {
				return RET_NOK;
			}
		}

		else if(config_setting_is_array(new_source)) {
			if(!entry_copy_aggregate(new_source,dest,CONFIG_TYPE_ARRAY)) {
				return RET_NOK;
			}
		}

		else if(config_setting_is_list(new_source)) {
			if(!entry_copy_aggregate(new_source,dest,CONFIG_TYPE_LIST)) {
				return RET_NOK;
			}
		}

		else {
			switch(config_setting_type(new_source)) {
			case CONFIG_TYPE_INT:
				int_value = config_setting_get_int(new_source);
				new_dest = config_setting_add (dest, config_setting_name(new_source),CONFIG_TYPE_INT);
				config_setting_set_int(new_dest,int_value);
				continue;
			case CONFIG_TYPE_INT64:
				long_value = config_setting_get_int64(new_source);
				new_dest = config_setting_add (dest, config_setting_name(new_source),CONFIG_TYPE_INT64);
				config_setting_set_int64(new_dest,long_value);
				continue;
			case CONFIG_TYPE_FLOAT:
				double_value = config_setting_get_float(new_source);
				new_dest = config_setting_add (dest, config_setting_name(new_source),CONFIG_TYPE_FLOAT);
				config_setting_set_float(new_dest,double_value);
				continue;
			case CONFIG_TYPE_BOOL:
				int_value = config_setting_get_bool(new_source);
				new_dest = config_setting_add (dest, config_setting_name(new_source),CONFIG_TYPE_BOOL);
				config_setting_set_bool(new_dest,int_value);
				continue;
			case CONFIG_TYPE_STRING:
				string = config_setting_get_string(new_source);
				new_dest = config_setting_add (dest, config_setting_name(new_source),CONFIG_TYPE_STRING);
				config_setting_set_string(new_dest,string);
				continue;
			default:
				return RET_NOK;
			}
		}
	}

	return RET_OK;
}
Beispiel #8
0
// load the default configuration in cfg
static void set_default_config(config_t * cfg) {
	static const unsigned AACCESSES = 4 * 1024 * 1024;
	static const unsigned BEGIN = BEGIN_INIT;
	static const char SPAWN[] = "linear";
	static const long long END = END_INIT;
	static const float FREQUENCY = 1;
	static const bool LOGGING = false;
	static const char LOGFILE[] = "adhd_log";
	static const char PATTERN[] = "random";
	static const unsigned PROCESSES = 1;
	static const unsigned REPETITIONS = 50;
	static const long long STEP = STEP_INIT;
	static const char SCALING[] = "linear";
	static const bool SILENT = false;
	static const unsigned THREADS = 1;

	static const long long STREAM_STEP = 10 * (1 << 20);
	static const long long STREAM_END = 100 * (1 << 20);

	static const long long FLOPS_STEP = 10 * (1 << 10);
	static const long long FLOPS_END = 1 * (1 << 20);
	static const long long FLOPS_CALCULATIONS = 1000 * 1000 * 1000;

	config_setting_t *setting;
	config_setting_t *root;
	root = config_root_setting(cfg);

	// generic group
	{
		config_setting_t *generic =
			config_setting_add(root, FLD_GENERIC_GROUP, CONFIG_TYPE_GROUP);

		// array of names of enabled programs (uses corresponding group names for
		// the sake of simplicity)
		{
			config_setting_t *programs =
				config_setting_add(generic, FLD_PROGRAMS_GROUP, CONFIG_TYPE_ARRAY);

			static const char *names[] = {
				FLD_WALKARRAY_GROUP,
				FLD_STREAMARRAY_GROUP,
				FLD_FLOPSARRAY_GROUP,
				NULL // mark end of list
			};

			for (size_t i = 0; names[i]; ++i) {
				setting = config_setting_add(programs, NULL, CONFIG_TYPE_STRING);
				config_setting_set_string(setting, names[i]);
			}
		}

		// CPU frequency to calculate cycle estimate
		// TODO: use actual cycle counter in the CPU
		// (this is a feature with a design impact, as SMP complicates matters ... :))
		setting = config_setting_add(generic, FLD_GENERIC_GPU_FREQUENCY, CONFIG_TYPE_FLOAT);
		config_setting_set_float(setting, FREQUENCY);

		// logging enabled?
		setting = config_setting_add(generic, FLD_GENERIC_LOGGING, CONFIG_TYPE_BOOL);
		config_setting_set_bool(setting, LOGGING);

		// base filename to log process timings to
		setting = config_setting_add(generic, FLD_GENERIC_LOGFILE, CONFIG_TYPE_STRING);
		config_setting_set_string(setting, LOGFILE);

		// process spawn method
		setting = config_setting_add(generic, FLD_GENERIC_SPAWN, CONFIG_TYPE_STRING);
		config_setting_set_string(setting, SPAWN);

		// number of processes to run: begin
		// TODO: just like arrays we could have a linear or exponential increment
		setting = config_setting_add(generic, FLD_GENERIC_PROCESSES_BEGIN, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, PROCESSES);

		// number of processes to run: end
		setting = config_setting_add(generic, FLD_GENERIC_PROCESSES_END, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, PROCESSES);

		// number of threads per process to run: begin
		// TODO: just like arrays we could have a linear or exponential increment
		setting = config_setting_add(generic, FLD_GENERIC_THREADS_BEGIN, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, THREADS);

		// number of threads per process to run: end
		setting = config_setting_add(generic, FLD_GENERIC_THREADS_END, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, THREADS);

		// silent mode
		setting = config_setting_add(generic, FLD_GENERIC_SILENT, CONFIG_TYPE_BOOL);
		config_setting_set_bool(setting, SILENT);
	}

	// walking array group
	{
		config_setting_t *array =
			config_setting_add(root, FLD_WALKARRAY_GROUP, CONFIG_TYPE_GROUP);

		// array accesses
		setting = config_setting_add(array, FLD_WALKARRAY_ACCESSES, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, AACCESSES);

		// repetitions of a single test, to be able to calculate an average
		// and a standard deviation, indicating run precision
		setting = config_setting_add(array, FLD_WALKARRAY_REPEAT, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, REPETITIONS);

		// initial array size
		setting = config_setting_add(array, FLD_WALKARRAY_BEGINLENGTH, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, BEGIN);

		// maximal array size
		setting = config_setting_add(array, FLD_WALKARRAY_ENDLENGTH, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, END);

		// increment factor
		setting = config_setting_add(array, FLD_WALKARRAY_INCREMENT, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, STEP);

		// increment type
		// (linear adds the increment, exponential multiplies the previous length)
		setting = config_setting_add(array, FLD_WALKARRAY_SCALING, CONFIG_TYPE_STRING);
		config_setting_set_string(setting, SCALING);

		// walking pattern
		// (sequentially increasing/decreasing or random)
		setting = config_setting_add(array, FLD_WALKARRAY_PATTERN, CONFIG_TYPE_STRING);
		config_setting_set_string(setting, PATTERN);
	}

	// streaming array group
	{
		config_setting_t *array =
			config_setting_add(root, FLD_STREAMARRAY_GROUP, CONFIG_TYPE_GROUP);

		// initial array size
		setting = config_setting_add(array, FLD_STREAMARRAY_BEGINLENGTH, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, BEGIN);

		// maximal array size
		setting = config_setting_add(array, FLD_STREAMARRAY_ENDLENGTH, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, STREAM_END);

		// increment factor
		setting = config_setting_add(array, FLD_STREAMARRAY_INCREMENT, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, STREAM_STEP);

		// increment type
		// (linear adds the increment, exponential multiplies the previous length)
		setting = config_setting_add(array, FLD_STREAMARRAY_SCALING, CONFIG_TYPE_STRING);
		config_setting_set_string(setting, SCALING);
	}

	// flops array group
	{
		config_setting_t *array =
			config_setting_add(root, FLD_FLOPSARRAY_GROUP, CONFIG_TYPE_GROUP);

		// initial array size
		setting = config_setting_add(array, FLD_FLOPSARRAY_BEGINLENGTH, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, BEGIN);

		// maximal array size
		setting = config_setting_add(array, FLD_FLOPSARRAY_ENDLENGTH, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, FLOPS_END);

		// increment factor
		setting = config_setting_add(array, FLD_FLOPSARRAY_INCREMENT, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, FLOPS_STEP);

		// increment type
		// (linear adds the increment, exponential multiplies the previous length)
		setting = config_setting_add(array, FLD_FLOPSARRAY_SCALING, CONFIG_TYPE_STRING);
		config_setting_set_string(setting, SCALING);

		// number of calculations to perform
		setting = config_setting_add(array, FLD_FLOPSARRAY_CALCULATIONS, CONFIG_TYPE_INT64);
		config_setting_set_int64(setting, FLOPS_CALCULATIONS);
	}
}
Beispiel #9
0
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);

        }

    }

}