1<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2<!-- Copyright (c) 2024 Huawei Device Co., Ltd.
3     Licensed under the Apache License, Version 2.0 (the "License");
4     you may not use this file except in compliance with the License.
5     You may obtain a copy of the License at
6          http://www.apache.org/licenses/LICENSE-2.0
7     Unless required by applicable law or agreed to in writing, software
8     distributed under the License is distributed on an "AS IS" BASIS,
9     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10     See the License for the specific language governing permissions and
11     limitations under the License.
12-->
13<audioPolicyConfiguration xmlns:xi="http://www.w3.org/2001/XInclude" version="1.0">
14    <adapters>
15        <adapter name="primary">
16            <devices>
17                <device name="Speaker" type="DEVICE_TYPE_SPEAKER" role="output"/>
18                <device name="Built-In Mic" type="DEVICE_TYPE_MIC" role="input"/>
19                <device name="Wired Headset" type="DEVICE_TYPE_WIRED_HEADSET" role="output,input"/>
20                <device name="Wired Headphones" type="DEVICE_TYPE_WIRED_HEADPHONES" role="output"/>
21            </devices>
22            <modules>
23                <sink name="primary out" role="output" fixed_latency="1" render_in_idle_state="1">
24                    <configs>
25                        <config name="preload" valu="true"/>
26                        <config name="maxinstances" valu="128"/>
27                    </configs>
28                    <profiles>
29                        <profile rate="44100" channels="2" format="s16le" buffer_size="4096"/>
30                    </profiles>
31                    <devices>
32                        <device name="Speaker"/>
33                        <device name="Wired Headset"/>
34                        <device name="Wired Headphones"/>
35                    </devices>
36                </sink>
37                <source name="primary in" role="input">
38                    <configs>
39                        <config name="maxinstances" valu="16"/>
40                    </configs>
41                    <profiles>
42                        <profile rate="44100" channels="2" format="s16le" buffer_size="8192"/>
43                    </profiles>
44                    <devices>
45                        <device name="Built-In Mic"/>
46                        <device name="Wired Headset"/>
47                    </devices>
48                </source>
49            </modules>
50        </adapter>
51        <adapter name="a2dp">
52            <devices>
53                <device name="Bt A2dp" type="DEVICE_TYPE_BLUETOOTH_A2DP" role="output"/>
54            </devices>
55            <modules>
56                <sink name="a2dp out" role="output">
57                    <configs>
58                        <config name="maxinstances" valu="128"/>
59                    </configs>
60                    <profiles>
61                        <profile rate="48000" channels="2" format="s16le" buffer_size="3840"/>
62                        <profile rate="44100" channels="2" format="s16le" buffer_size="3528"/>
63                        <profile rate="96000" channels="2" format="s24le" buffer_size="11520"/>
64                    </profiles>
65                    <devices>
66                        <device name="Bt A2dp"/>
67                    </devices>
68                </sink>
69            </modules>
70        </adapter>
71        <adapter name="remote">
72            <devices>
73                <device name="Remote Sink" type="DEVICE_TYPE_SPEAKER" role="output"/>
74                <device name="Remote Source" type="DEVICE_TYPE_MIC" role="input"/>
75            </devices>
76            <modules>
77                <sink name="remote out" role="output" profile="dynamic">
78                    <configs>
79                        <config name="maxinstances" valu="128"/>
80                    </configs>
81                    <devices>
82                        <device name="Remote Sink"/>
83                    </devices>
84                </sink>
85                <source name="remote in" role="input" profile="dynamic">
86                    <configs>
87                        <config name="maxinstances" valu="16"/>
88                    </configs>
89                    <devices>
90                        <device name="Remote Source"/>
91                    </devices>
92                </source>
93            </modules>
94        </adapter>
95        <adapter name="file">
96            <devices>
97                <device name="File Sink" type="DEVICE_TYPE_FILE_SINK" role="output"/>
98                <device name="File Source" type="DEVICE_TYPE_FILE_SOURCE" role="input"/>
99            </devices>
100            <modules>
101                <sink name="file out" role="output">
102                    <configs>
103                        <config name="maxinstances" valu="128"/>
104                    </configs>
105                    <profiles>
106                        <profile rate="48000" channels="8" format="s16le" buffer_size="15360"/>
107                    </profiles>
108                    <devices>
109                        <device name="File Sink"/>
110                    </devices>
111                </sink>
112                <source name="file in" role="input">
113                    <configs>
114                        <config name="maxinstances" valu="16"/>
115                    </configs>
116                    <profiles>
117                        <profile rate="48000" channels="6" format="s16le" buffer_size="11520"/>
118                    </profiles>
119                    <devices>
120                        <device name="File Source"/>
121                    </devices>
122                </source>
123            </modules>
124        </adapter>
125    </adapters>
126
127    <volumeGroups>
128        <groups>
129            <group name ="volume_group">
130                <sink name ="primary out"/>
131            </group>
132        </groups>
133    </volumeGroups>
134
135    <interruptGroups>
136        <groups>
137            <group name ="interrupt_group">
138                <sink name ="primary out"/>
139            </group>
140        </groups>
141    </interruptGroups>
142
143    <extends>
144        <updateRouteSupport>false</updateRouteSupport>
145        <audioLatency>50</audioLatency>
146    </extends>
147</audioPolicyConfiguration>
148