1<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2<!-- Copyright (C) 2018 The Android Open Source Project
3
4     Licensed under the Apache License, Version 2.0 (the "License");
5     you may not use this file except in compliance with the License.
6     You may obtain a copy of the License at
7
8          http://www.apache.org/licenses/LICENSE-2.0
9
10     Unless required by applicable law or agreed to in writing, software
11     distributed under the License is distributed on an "AS IS" BASIS,
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13     See the License for the specific language governing permissions and
14     limitations under the License.
15-->
16
17<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
18    <globalConfiguration speaker_drc_enabled="true"/>
19
20    <modules>
21        <module name="primary" halVersion="2.0">
22            <attachedDevices>
23                <item>Speaker</item>
24                <item>Speaker Safe</item>
25                <item>Earpiece</item>
26                <item>Telephony Tx</item>
27                <item>Built-In Mic</item>
28                <item>Built-In Back Mic</item>
29                <item>Telephony Rx</item>
30            </attachedDevices>
31            <defaultOutputDevice>Speaker</defaultOutputDevice>
32            <mixPorts>
33                <mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST">
34                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
35                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
36                </mixPort>
37                <mixPort name="raw" role="source" flags="AUDIO_OUTPUT_FLAG_RAW|AUDIO_OUTPUT_FLAG_FAST">
38                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
39                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
40                </mixPort>
41                <mixPort name="hifi_playback" role="source" />
42                <mixPort name="deep_buffer" role="source"
43                        flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER">
44                    <profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
45                             samplingRates="44100,48000"
46                             channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
47                </mixPort>
48                <mixPort name="compressed_offload" role="source"
49                         flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING">
50                    <profile name="" format="AUDIO_FORMAT_MP3"
51                             samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
52                             channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
53                    <profile name="" format="AUDIO_FORMAT_AAC_LC"
54                             samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
55                             channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
56                    <profile name="" format="AUDIO_FORMAT_AAC_HE_V1"
57                             samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,64000,88200,96000"
58                             channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
59                    <profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
60                             samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
61                             channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
62                </mixPort>
63                <mixPort name="voice_tx" role="source">
64                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
65                             samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
66                </mixPort>
67                <mixPort name="mmap_no_irq_out" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_MMAP_NOIRQ">
68                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
69                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
70                </mixPort>
71                <mixPort name="voip_rx" role="source"
72                         flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
73                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
74                           samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
75                </mixPort>
76                <mixPort name="incall_music_uplink" role="source"
77                        flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
78                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
79                             samplingRates="8000,16000,48000"
80                             channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
81                </mixPort>
82                <mixPort name="primary input" role="sink">
83                    <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
84                             samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
85                             channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
86                </mixPort>
87                <mixPort name="hotword input" role="sink" flags="AUDIO_INPUT_FLAG_HW_HOTWORD" maxActiveCount="0" >
88                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
89                             samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
90                             channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
91                </mixPort>
92                <mixPort name="fast input" role="sink" flags="AUDIO_INPUT_FLAG_FAST">
93                    <profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
94                             samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
95                             channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
96                </mixPort>
97                <mixPort name="hifi_input" role="sink" />
98                <mixPort name="voice_rx" role="sink">
99                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
100                             samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
101                </mixPort>
102                <mixPort name="mmap_no_irq_in" role="sink" flags="AUDIO_INPUT_FLAG_MMAP_NOIRQ">
103                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
104                             samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
105                             channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3"/>
106                </mixPort>
107                <mixPort name="voip_tx" role="sink"
108                         flags="AUDIO_INPUT_FLAG_VOIP_TX">
109                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
110                             samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
111                </mixPort>
112                <mixPort name="haptic" role="source">
113                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
114                             samplingRates="48000"
115                             channelMasks="AUDIO_CHANNEL_OUT_STEREO_HAPTIC_A" />
116                </mixPort>
117            </mixPorts>
118            <devicePorts>
119                <devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink">
120                </devicePort>
121                <devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink">
122                </devicePort>
123                <devicePort tagName="Speaker Safe" type="AUDIO_DEVICE_OUT_SPEAKER_SAFE" role="sink">
124                </devicePort>
125                <devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
126                </devicePort>
127                <devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
128                </devicePort>
129                <devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink">
130                </devicePort>
131                <devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
132                </devicePort>
133                <devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink">
134                </devicePort>
135                <devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
136                </devicePort>
137                <devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
138                            encodedFormats="AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
139                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
140                             samplingRates="44100,48000,88200,96000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
141                </devicePort>
142                <devicePort tagName="BT A2DP Headphones" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES" role="sink"
143                            encodedFormats="AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
144                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
145                             samplingRates="44100,48000,88200,96000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
146                </devicePort>
147                <devicePort tagName="BT A2DP Speaker" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER" role="sink"
148                            encodedFormats="AUDIO_FORMAT_LDAC AUDIO_FORMAT_APTX AUDIO_FORMAT_APTX_HD AUDIO_FORMAT_AAC AUDIO_FORMAT_SBC">
149                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
150                             samplingRates="44100,48000,88200,96000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
151                </devicePort>
152                <devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
153                </devicePort>
154                <devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
155                </devicePort>
156                <devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
157                </devicePort>
158                <devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source">
159                </devicePort>
160                <!-- TODO: Enable multi-channel recording -->
161                <devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
162                </devicePort>
163                <devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source">
164                </devicePort>
165            </devicePorts>
166            <routes>
167                <route type="mix" sink="Earpiece"
168                       sources="primary output,raw,deep_buffer,mmap_no_irq_out,voip_rx"/>
169                <route type="mix" sink="Speaker"
170                       sources="primary output,raw,deep_buffer,compressed_offload,mmap_no_irq_out,voip_rx,haptic"/>
171                <route type="mix" sink="Speaker Safe"
172                       sources="primary output,raw,deep_buffer,compressed_offload,mmap_no_irq_out,voip_rx,haptic"/>
173                <route type="mix" sink="BT SCO"
174                       sources="primary output,raw,deep_buffer,voip_rx,haptic"/>
175                <route type="mix" sink="BT SCO Headset"
176                       sources="primary output,raw,deep_buffer,voip_rx,haptic"/>
177                <route type="mix" sink="BT SCO Car Kit"
178                       sources="primary output,raw,deep_buffer,voip_rx,haptic"/>
179                <route type="mix" sink="USB Device Out"
180                       sources="primary output,raw,deep_buffer,compressed_offload,hifi_playback,mmap_no_irq_out,voip_rx,haptic"/>
181                <route type="mix" sink="USB Headset Out"
182                       sources="primary output,raw,deep_buffer,compressed_offload,hifi_playback,mmap_no_irq_out,voip_rx,haptic"/>
183                <route type="mix" sink="Telephony Tx"
184                       sources="voice_tx,incall_music_uplink"/>
185                <route type="mix" sink="primary input"
186                       sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
187                <route type="mix" sink="hotword input"
188                       sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
189                <route type="mix" sink="fast input"
190                       sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
191                <route type="mix" sink="voice_rx"
192                       sources="Telephony Rx"/>
193                <route type="mix" sink="hifi_input" sources="USB Device In,USB Headset In" />
194                <route type="mix" sink="mmap_no_irq_in"
195                       sources="Built-In Mic,Built-In Back Mic,USB Device In,USB Headset In"/>
196                <route type="mix" sink="voip_tx"
197                       sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
198                <route type="mix" sink="BT A2DP Out"
199                       sources="primary output,deep_buffer,compressed_offload,voip_rx,haptic"/>
200                <route type="mix" sink="BT A2DP Headphones"
201                       sources="primary output,deep_buffer,compressed_offload,voip_rx,haptic"/>
202                <route type="mix" sink="BT A2DP Speaker"
203                       sources="primary output,deep_buffer,compressed_offload,voip_rx,haptic"/>
204            </routes>
205        </module>
206
207        <!-- A2DP Input Audio HAL -->
208        <xi:include href="a2dp_in_audio_policy_configuration.xml"/>
209
210        <!-- Usb Audio HAL -->
211        <module name="usb" halVersion="2.0">
212            <mixPorts>
213                <mixPort name="usb_accessory output" role="source">
214                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
215                             samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
216                </mixPort>
217            </mixPorts>
218            <devicePorts>
219                <devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink">
220                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
221                             samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
222                </devicePort>
223            </devicePorts>
224            <routes>
225                <route type="mix" sink="USB Host Out"
226                       sources="usb_accessory output"/>
227            </routes>
228        </module>
229
230        <!-- Remote Submix Audio HAL -->
231        <xi:include href="r_submix_audio_policy_configuration.xml"/>
232
233        <!-- Bluetooth Audio HAL for hearing aid -->
234        <xi:include href="bluetooth_hearing_aid_audio_policy_configuration.xml"/>
235
236    </modules>
237
238    <!-- Volume section -->
239
240    <xi:include href="audio_policy_volumes.xml"/>
241    <xi:include href="default_volume_tables.xml"/>
242
243</audioPolicyConfiguration>
244