The audio manager configuration file sets the behavior of audio devices and streams.
The audio manager configuration file (/audioman_default.conf) sets the behavior of audio devices and streams, including device and audio type attributes, ducking rules, and audio routing rules and priorities.
You can change the configuration file to adjust how your system handles audio streams and the behavior of output devices. For example, you can set the default volume for music (as a percentage of the maximum) at system start for each type of output device (speaker, headset, headphones, etc.), or the amount of attenuation when the phone rings. Thus, by using different configuration files you can tune audio behavior for specific devices or implementations (phone, in-vehicle system, etc.) without changing or recompiling code.
The configuration file can't be changed by applications or the audio management service. To change values in the configuration file:
The audio manager configuration file is a plain text file that uses a simple syntax with hierarchical containers of values for attributes.
The syntax for a container is as follows:
"value":{ "attribute":"value", }
For example, the following configures two channels for headphones:
"headphone":{ "numchans":"2", }
And the following configures the volume for an alert to 90 percent of the maximum for the output device:
"Ducking Rules":{ "alert":"90", },
Note that the value in a configuration can be a pair of brackets, "{ ...}" and their contents, in which case the contents inside the brackets are the value for the attribute. For example, the file begins by defining the language used for managing audio, the file version number. It then begins configuring devices, as shown in the code snippet below.
AudioManagerConfiguration:json:{ "Version":"0.0.1", "Devices":{ "Description":"Specify the default values for the audio device attributes", "speaker":{ "supported":"true", ... } } }
At startup, the audio manager looks for the audioman_default.conf file at /etc/system/config/audio/. If it doesn't find this file, it uses its compiled values. If the audio manager finds a configuration file, it writes the values in the file to its PPS objects at /pps/services/audio/. If any configurations are missing from the configuration file, the audio manager uses the compiled values for these configurations.
The following snippet from an audioman_default.conf file shows a configuration for a headset.
"headset":{ "supported":"true", "path":"/dev/snd/pcmPreferredp", "input.path":"/dev/snd/pcmPreferredc", "connected":"false", "numchans":"2", "order":"FL,FR", "audioconfig":"2.0", "inchans":"1", "hwinchans":"1", "volumecontrol":"percentage", "dependency":"", "keepalive":"false", "suspended":"false", "controlpps":"", "audioprocessing":"false", "vadsupport":"", "public":"false", "mutable":"true", "mixer":"Master", "input.mixer":"Input Gain", "Buttons":"1" },