/*! \page page_prefs Configuration files

\section prefs Configuration / Preference Files

GNU Radio defines some of its basic behavior through a set of
configuration files located in
${prefix}/etc/gnuradio/conf.d. Different components have different
files listed in here for the various properties. These will be read
once when starting a GNU Radio application, so updates during runtime
will not affect them.

The configuration files use the following format:

\code
# Stuff from section 1
[section1]
var1 = value1
var2 = value2 # value of 2

# Stuff from section 2
[section2]
var3 = value3
\endcode

In this file, the hash mark ('#') indicates a comment and blank lines
are ignored. Section labels are defined inside square brackets as a
group distinguisher. All options must be associated with a section
name. The options are listed one per line with the option name is
given followed by an equals ('=') sign and then the value.

All section and option names must not have white spaces. If a value
must have white space, the it MUST be put inside quotes. Any quoted
value will have its white space preserved and the quotes internally
will be stripped. As an example, on Apple desktops, an output device
of "Display Audio" is a possible output device and can be set as:

\code
[audio_osx]
default_output_device = "Display Audio"
\endcode

The result will pass Display Audio to the audio setup.

The value of an option can be a string or number and retrieved through
a few different interfaces. There is a single preference object
created when GNU Radio is launched. In Python, you can get this by
making a new variable:

\code
p = gr.prefs()
\endcode

Similarly, in C++, we get a reference to the object by explicitly
calling for the singleton of the object:

\code
  prefs *p = prefs::singleton();
\endcode

The methods associated with this preferences object are (from class gr::prefs):

\code
  bool has_section(string section)
  bool has_option(string section, string option)
  string get_string(string section, string option, string default_val)
  bool get_bool(string section, string option, bool default_val)
  long get_long(string section, string option, long default_val)
  double get_double(string section, string option, double default_val)
\endcode

When setting a Boolean value, we can use 0, 1, "True", "true",
"False", "false", "On", "on", "Off", and "off".

All configuration preferences in these files can also be overloaded by
an environmental variable. The environmental variable is named based
on the section and option name from the configuration file as:

\code
  GR_CONF_<SECTION>_<OPTION> = <value>
\endcode

The "GR_CONF_" is a prefix to identify this as a GNU Radio
configuration variable and the section and option names are in
uppercase. The value is the same format that would be used in the
config file itself.

*/
