1eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# 2eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# Template audio policy configuration file 3eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# 4eb108a4622825688b02d7afc981014d149913cd8Eric Laurent 5eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# Global configuration section: 6eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# - before audio HAL version 3.0: 7eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# lists input and output devices always present on the device 8eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# as well as the output device selected by default. 9eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# Devices are designated by a string that corresponds to the enum in audio.h 10eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# 11eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# global_configuration { 12eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# attached_output_devices AUDIO_DEVICE_OUT_SPEAKER 13eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# default_output_device AUDIO_DEVICE_OUT_SPEAKER 14eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX 15eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# } 16eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# 17eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# - after and including audio HAL 3.0 the global_configuration section is included in each 18eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# hardware module section. 19eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# it also includes the audio HAL version of this hw module: 20eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# global_configuration { 21eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# ... 22eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# audio_hal_version <major.minor> # audio HAL version in e.g. 3.0 23eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# } 24eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# other attributes (attached devices, default device) have to be included in the 25eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# global_configuration section of each hardware module 26eb108a4622825688b02d7afc981014d149913cd8Eric Laurent 27eb108a4622825688b02d7afc981014d149913cd8Eric Laurent 28eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# audio hardware module section: contains descriptors for all audio hw modules present on the 29eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# device. Each hw module node is named after the corresponding hw module library base name. 30eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# For instance, "primary" corresponds to audio.primary.<device>.so. 31eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# The "primary" module is mandatory and must include at least one output with 32eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# AUDIO_OUTPUT_FLAG_PRIMARY flag. 33eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# Each module descriptor contains one or more output profile descriptors and zero or more 34eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# input profile descriptors. Each profile lists all the parameters supported by a given output 35eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# or input stream category. 36eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding 37eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n". 38eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# 39eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# For audio HAL version posterior to 3.0 the following sections or sub sections can be present in 40eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# a hw module section: 41eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# - A "global_configuration" section: see above 42eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# - Optionally a "devices" section: 43eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# This section contains descriptors for audio devices with attributes like an address or a 44eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# gain controller. The syntax for the devices section and device descriptor is as follows: 45eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# devices { 46eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# <device name> { # <device name>: any string without space 47eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# type <device type> # <device type> e.g. AUDIO_DEVICE_OUT_SPEAKER 48eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# address <address> # optional: device address, char string less than 64 in length 49eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# } 50eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# } 51eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# - one or more "gains" sections can be present in a device descriptor section. 52eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# If present, they describe the capabilities of gain controllers attached to this input or 53eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# output device. e.g. : 54eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# <device name> { # <device name>: any string without space 55eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# type <device type> # <device type> e.g. AUDIO_DEVICE_OUT_SPEAKER 56eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# address <address> # optional: device address, char string less than 64 in length 57eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# gains { 58eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# <gain name> { 59eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# mode <gain modes supported> # e.g. AUDIO_GAIN_MODE_CHANNELS 60eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# channel_mask <controlled channels> # needed if mode AUDIO_GAIN_MODE_CHANNELS 61eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# min_value_mB <min value in millibel> 62eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# max_value_mB <max value in millibel> 63eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# default_value_mB <default value in millibel> 64eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# step_value_mB <step value in millibel> 65eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# min_ramp_ms <min duration in ms> # needed if mode AUDIO_GAIN_MODE_RAMP 66eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# max_ramp_ms <max duration ms> # needed if mode AUDIO_GAIN_MODE_RAMP 67eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# } 68eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# } 69eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# } 70eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# - when a device descriptor is present, output and input profiles can refer to this device by 71eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# its name in their "devices" section instead of specifying a device type. e.g. : 72eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# outputs { 73eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# primary { 74eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# sampling_rates 44100 75eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# channel_masks AUDIO_CHANNEL_OUT_STEREO 76eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# formats AUDIO_FORMAT_PCM_16_BIT 77eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# devices <device name> 78eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# flags AUDIO_OUTPUT_FLAG_PRIMARY 79eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# } 80eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# } 81eb108a4622825688b02d7afc981014d149913cd8Eric Laurent# sample audio_policy.conf file below 82eb108a4622825688b02d7afc981014d149913cd8Eric Laurent 83eb108a4622825688b02d7afc981014d149913cd8Eric Laurentaudio_hw_modules { 84eb108a4622825688b02d7afc981014d149913cd8Eric Laurent primary { 85eb108a4622825688b02d7afc981014d149913cd8Eric Laurent global_configuration { 86eb108a4622825688b02d7afc981014d149913cd8Eric Laurent attached_output_devices AUDIO_DEVICE_OUT_SPEAKER 87eb108a4622825688b02d7afc981014d149913cd8Eric Laurent default_output_device AUDIO_DEVICE_OUT_SPEAKER 88eb108a4622825688b02d7afc981014d149913cd8Eric Laurent attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC 89eb108a4622825688b02d7afc981014d149913cd8Eric Laurent audio_hal_version 3.0 90eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 91eb108a4622825688b02d7afc981014d149913cd8Eric Laurent devices { 92eb108a4622825688b02d7afc981014d149913cd8Eric Laurent speaker { 93eb108a4622825688b02d7afc981014d149913cd8Eric Laurent type AUDIO_DEVICE_OUT_SPEAKER 94eb108a4622825688b02d7afc981014d149913cd8Eric Laurent gains { 95eb108a4622825688b02d7afc981014d149913cd8Eric Laurent gain_1 { 96eb108a4622825688b02d7afc981014d149913cd8Eric Laurent mode AUDIO_GAIN_MODE_JOINT 97eb108a4622825688b02d7afc981014d149913cd8Eric Laurent min_value_mB -8400 98eb108a4622825688b02d7afc981014d149913cd8Eric Laurent max_value_mB 4000 99eb108a4622825688b02d7afc981014d149913cd8Eric Laurent default_value_mB 0 100eb108a4622825688b02d7afc981014d149913cd8Eric Laurent step_value_mB 100 101eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 102eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 103eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 104eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 105eb108a4622825688b02d7afc981014d149913cd8Eric Laurent outputs { 106eb108a4622825688b02d7afc981014d149913cd8Eric Laurent primary { 107eb108a4622825688b02d7afc981014d149913cd8Eric Laurent sampling_rates 48000 108eb108a4622825688b02d7afc981014d149913cd8Eric Laurent channel_masks AUDIO_CHANNEL_OUT_STEREO 109eb108a4622825688b02d7afc981014d149913cd8Eric Laurent formats AUDIO_FORMAT_PCM_16_BIT 110eb108a4622825688b02d7afc981014d149913cd8Eric Laurent devices speaker 111eb108a4622825688b02d7afc981014d149913cd8Eric Laurent flags AUDIO_OUTPUT_FLAG_PRIMARY 112eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 113eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 114eb108a4622825688b02d7afc981014d149913cd8Eric Laurent inputs { 115eb108a4622825688b02d7afc981014d149913cd8Eric Laurent primary { 116eb108a4622825688b02d7afc981014d149913cd8Eric Laurent sampling_rates 8000|16000 117eb108a4622825688b02d7afc981014d149913cd8Eric Laurent channel_masks AUDIO_CHANNEL_IN_MONO 118eb108a4622825688b02d7afc981014d149913cd8Eric Laurent formats AUDIO_FORMAT_PCM_16_BIT 119eb108a4622825688b02d7afc981014d149913cd8Eric Laurent devices AUDIO_DEVICE_IN_BUILTIN_MIC 120eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 121eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 122eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 123eb108a4622825688b02d7afc981014d149913cd8Eric Laurent r_submix { 124eb108a4622825688b02d7afc981014d149913cd8Eric Laurent global_configuration { 125eb108a4622825688b02d7afc981014d149913cd8Eric Laurent attached_input_devices AUDIO_DEVICE_IN_REMOTE_SUBMIX 126eb108a4622825688b02d7afc981014d149913cd8Eric Laurent audio_hal_version 2.0 127eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 128eb108a4622825688b02d7afc981014d149913cd8Eric Laurent outputs { 129eb108a4622825688b02d7afc981014d149913cd8Eric Laurent submix { 130eb108a4622825688b02d7afc981014d149913cd8Eric Laurent sampling_rates 48000 131eb108a4622825688b02d7afc981014d149913cd8Eric Laurent channel_masks AUDIO_CHANNEL_OUT_STEREO 132eb108a4622825688b02d7afc981014d149913cd8Eric Laurent formats AUDIO_FORMAT_PCM_16_BIT 133eb108a4622825688b02d7afc981014d149913cd8Eric Laurent devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX 134eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 135eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 136eb108a4622825688b02d7afc981014d149913cd8Eric Laurent inputs { 137eb108a4622825688b02d7afc981014d149913cd8Eric Laurent submix { 138eb108a4622825688b02d7afc981014d149913cd8Eric Laurent sampling_rates 48000 139eb108a4622825688b02d7afc981014d149913cd8Eric Laurent channel_masks AUDIO_CHANNEL_IN_STEREO 140eb108a4622825688b02d7afc981014d149913cd8Eric Laurent formats AUDIO_FORMAT_PCM_16_BIT 141eb108a4622825688b02d7afc981014d149913cd8Eric Laurent devices AUDIO_DEVICE_IN_REMOTE_SUBMIX 142eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 143eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 144eb108a4622825688b02d7afc981014d149913cd8Eric Laurent } 145eb108a4622825688b02d7afc981014d149913cd8Eric Laurent} 146