The parameter-framework is a plugin-based and rule-based framework for handling parameters. This means that you can:
- Describe your system's structure and its parameters (in XML) - aka. What;
- Write (in C++) or reuse a backend (aka. plugin) for accessing the parameters that you just described - aka. How;
- Define (in XML or in a domain-specific-language) conditions/rules upon which a given parameter must take a given value - aka. When.
The parameter-framework can be used to set the value of alsa controls (switches, volumes, etc.) on smartphones/tablets based on parameter-framework rules (in this example, they transcribe use-cases). For accessing parameters (i.e. alsa controls), you may use the alsa plugin.
The filesystem plugin
can be used to write parameters in files. This is particularly useful for
files in /sys
managing GPIOs.
The parameter-framework's core comes in the form of a shared library. Its client has to provide:
- configuration files describing the structure of the system to be managed by the parameter-framework and what plugins it must use to read/write into each subsystem;
- a list of criteria (representing the state of the client) and their possible values;
- configuration files describing the value that each part of the system (aka parameter) must take - this is done by writing rules based on the criteria described above.
At runtime, the most usual communication between the client and the parameter-framework are:
- The update of criteria (that are used in the rules introduced above) and
- Update all relevant parameters according to the new criteria values. The parameter-framework uses the appropriate backend for writing the values in each underlying subsystem.
The parameter-framework comes with several tools, including a command-line
interface: remote-process
.
See the wiki on github.
Run cmake .
then make
. You may then install libraries, headers and
binaries with make install
. By default, they are installed under
/usr/local
on unix OSes; if you want to install them under a custom
directory, you may do so by passing it to the cmake .
command; e.g.
cmake -DCMAKE_INSTALL_PREFIX=/path/to/custom/install .
Also, CMake can build a project out-of-tree, which is the recommended method:
mkdir /path/to/build/directory
cd /path/to/build/directory
cmake /path/to/parameter-framework/sources
make
After an install you may want to run the parameter-framework tests with
make test
.