summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/audio_policy.conf
blob: 9b83fefb48156027c7598c8d0c5132781f609dbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#
# Template audio policy configuration file
#

# Global configuration section:
# - before audio HAL version 3.0:
#   lists input and output devices always present on the device
#   as well as the output device selected by default.
#   Devices are designated by a string that corresponds to the enum in audio.h
#
#  global_configuration {
#    attached_output_devices AUDIO_DEVICE_OUT_SPEAKER
#    default_output_device AUDIO_DEVICE_OUT_SPEAKER
#    attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX
#  }
#
# - after and including audio HAL 3.0 the global_configuration section is included in each
#   hardware module section.
#   it also includes the audio HAL version of this hw module:
#  global_configuration {
#    ...
#     audio_hal_version <major.minor>  # audio HAL version in e.g. 3.0
#  }
#   other attributes (attached devices, default device) have to be included in the
#   global_configuration section of each hardware module


# audio hardware module section: contains descriptors for all audio hw modules present on the
# device. Each hw module node is named after the corresponding hw module library base name.
# For instance, "primary" corresponds to audio.primary.<device>.so.
# The "primary" module is mandatory and must include at least one output with
# AUDIO_OUTPUT_FLAG_PRIMARY flag.
# Each module descriptor contains one or more output profile descriptors and zero or more
# input profile descriptors. Each profile lists all the parameters supported by a given output
# or input stream category.
# The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding
# to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n".
#
# For audio HAL version posterior to 3.0 the following sections or sub sections can be present in
# a hw module section:
# - A "global_configuration" section: see above
# - Optionally a "devices" section:
#   This section contains descriptors for audio devices with attributes like an address or a
#   gain controller. The syntax for the devices section and device descriptor is as follows:
#    devices {
#      <device name> {              # <device name>: any string without space
#        type <device type>         # <device type> e.g. AUDIO_DEVICE_OUT_SPEAKER
#        address <address>          # optional: device address, char string less than 64 in length
#      }
#    }
# - one or more "gains" sections can be present in a device descriptor section.
#   If present, they describe the capabilities of gain controllers attached to this input or
#   output device. e.g. :
#   <device name> {                  # <device name>: any string without space
#     type <device type>             # <device type> e.g. AUDIO_DEVICE_OUT_SPEAKER
#     address <address>              # optional: device address, char string less than 64 in length
#     gains {
#       <gain name> {
#         mode <gain modes supported>              # e.g. AUDIO_GAIN_MODE_CHANNELS
#         channel_mask <controlled channels>       # needed if mode AUDIO_GAIN_MODE_CHANNELS
#         min_value_mB <min value in millibel>
#         max_value_mB <max value in millibel>
#         default_value_mB <default value in millibel>
#         step_value_mB <step value in millibel>
#         min_ramp_ms <min duration in ms>         # needed if mode AUDIO_GAIN_MODE_RAMP
#         max_ramp_ms <max duration ms>            # needed if mode AUDIO_GAIN_MODE_RAMP
#       }
#     }
#   }
# - when a device descriptor is present, output and input profiles can refer to this device by
# its name in their "devices" section instead of specifying a device type. e.g. :
#   outputs {
#     primary {
#       sampling_rates 44100
#       channel_masks AUDIO_CHANNEL_OUT_STEREO
#       formats AUDIO_FORMAT_PCM_16_BIT
#       devices <device name>
#       flags AUDIO_OUTPUT_FLAG_PRIMARY
#     }
#   }
# sample audio_policy.conf file below

audio_hw_modules {
  primary {
    global_configuration {
      attached_output_devices AUDIO_DEVICE_OUT_SPEAKER
      default_output_device AUDIO_DEVICE_OUT_SPEAKER
      attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC
      audio_hal_version 3.0
    }
    devices {
      speaker {
        type AUDIO_DEVICE_OUT_SPEAKER
        gains {
          gain_1 {
            mode AUDIO_GAIN_MODE_JOINT
            min_value_mB -8400
            max_value_mB 4000
            default_value_mB 0
            step_value_mB 100
          }
        }
      }
    }
    outputs {
      primary {
        sampling_rates 48000
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices speaker
        flags AUDIO_OUTPUT_FLAG_PRIMARY
      }
    }
    inputs {
      primary {
        sampling_rates 8000|16000
        channel_masks AUDIO_CHANNEL_IN_MONO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_IN_BUILTIN_MIC
      }
    }
  }
  r_submix {
    global_configuration {
      attached_input_devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
      audio_hal_version 2.0
    }
    outputs {
      submix {
        sampling_rates 48000
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX
      }
    }
    inputs {
      submix {
        sampling_rates 48000
        channel_masks AUDIO_CHANNEL_IN_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_IN_REMOTE_SUBMIX
      }
    }
  }
}