1// Copyright 2020, The Android Open Source Project
2//
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//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package {
16    default_applicable_licenses: ["Android-Apache-2.0"],
17}
18
19aidl_interface {
20    name: "android.media.audio.common.types",
21    vendor_available: true,
22    host_supported: true,
23    double_loadable: true,
24    flags: [
25        "-Werror",
26        "-Weverything",
27    ],
28    local_include_dir: "aidl",
29    srcs: [
30        "aidl/android/media/audio/common/AudioAttributes.aidl",
31        "aidl/android/media/audio/common/AudioChannelLayout.aidl",
32        "aidl/android/media/audio/common/AudioConfig.aidl",
33        "aidl/android/media/audio/common/AudioConfigBase.aidl",
34        "aidl/android/media/audio/common/AudioContentType.aidl",
35        "aidl/android/media/audio/common/AudioDevice.aidl",
36        "aidl/android/media/audio/common/AudioDeviceAddress.aidl",
37        "aidl/android/media/audio/common/AudioDeviceDescription.aidl",
38        "aidl/android/media/audio/common/AudioDeviceType.aidl",
39        "aidl/android/media/audio/common/AudioDualMonoMode.aidl",
40        "aidl/android/media/audio/common/AudioEncapsulationMetadataType.aidl",
41        "aidl/android/media/audio/common/AudioEncapsulationMode.aidl",
42        "aidl/android/media/audio/common/AudioEncapsulationType.aidl",
43        "aidl/android/media/audio/common/AudioFlag.aidl",
44        "aidl/android/media/audio/common/AudioFormatDescription.aidl",
45        "aidl/android/media/audio/common/AudioFormatType.aidl",
46        "aidl/android/media/audio/common/AudioGain.aidl",
47        "aidl/android/media/audio/common/AudioGainConfig.aidl",
48        "aidl/android/media/audio/common/AudioGainMode.aidl",
49        "aidl/android/media/audio/common/AudioHalAttributesGroup.aidl",
50        "aidl/android/media/audio/common/AudioHalCapConfiguration.aidl",
51        "aidl/android/media/audio/common/AudioHalCapCriterion.aidl",
52        "aidl/android/media/audio/common/AudioHalCapCriterionV2.aidl",
53        "aidl/android/media/audio/common/AudioHalCapCriterionType.aidl",
54        "aidl/android/media/audio/common/AudioHalCapDomain.aidl",
55        "aidl/android/media/audio/common/AudioHalCapParameter.aidl",
56        "aidl/android/media/audio/common/AudioHalCapRule.aidl",
57        "aidl/android/media/audio/common/AudioHalEngineConfig.aidl",
58        "aidl/android/media/audio/common/AudioHalProductStrategy.aidl",
59        "aidl/android/media/audio/common/AudioHalVolumeCurve.aidl",
60        "aidl/android/media/audio/common/AudioHalVolumeGroup.aidl",
61        "aidl/android/media/audio/common/AudioInputFlags.aidl",
62        "aidl/android/media/audio/common/AudioIoFlags.aidl",
63        "aidl/android/media/audio/common/AudioLatencyMode.aidl",
64        "aidl/android/media/audio/common/AudioMMapPolicy.aidl",
65        "aidl/android/media/audio/common/AudioMMapPolicyInfo.aidl",
66        "aidl/android/media/audio/common/AudioMMapPolicyType.aidl",
67        "aidl/android/media/audio/common/AudioMode.aidl",
68        "aidl/android/media/audio/common/AudioOffloadInfo.aidl",
69        "aidl/android/media/audio/common/AudioOutputFlags.aidl",
70        "aidl/android/media/audio/common/AudioPlaybackRate.aidl",
71        "aidl/android/media/audio/common/AudioPolicyForceUse.aidl",
72        "aidl/android/media/audio/common/AudioPort.aidl",
73        "aidl/android/media/audio/common/AudioPortConfig.aidl",
74        "aidl/android/media/audio/common/AudioPortDeviceExt.aidl",
75        "aidl/android/media/audio/common/AudioPortExt.aidl",
76        "aidl/android/media/audio/common/AudioPortMixExt.aidl",
77        "aidl/android/media/audio/common/AudioPortMixExtUseCase.aidl",
78        "aidl/android/media/audio/common/AudioProductStrategyType.aidl",
79        "aidl/android/media/audio/common/AudioProfile.aidl",
80        "aidl/android/media/audio/common/AudioSource.aidl",
81        "aidl/android/media/audio/common/AudioStandard.aidl",
82        "aidl/android/media/audio/common/AudioStreamType.aidl",
83        "aidl/android/media/audio/common/AudioUsage.aidl",
84        "aidl/android/media/audio/common/AudioUuid.aidl",
85        "aidl/android/media/audio/common/AudioVolumeGroupChangeEvent.aidl",
86        "aidl/android/media/audio/common/Boolean.aidl",
87        "aidl/android/media/audio/common/Byte.aidl",
88        "aidl/android/media/audio/common/ExtraAudioDescriptor.aidl",
89        "aidl/android/media/audio/common/Float.aidl",
90        "aidl/android/media/audio/common/Double.aidl",
91        "aidl/android/media/audio/common/HeadTracking.aidl",
92        "aidl/android/media/audio/common/Int.aidl",
93        "aidl/android/media/audio/common/Long.aidl",
94        "aidl/android/media/audio/common/MicrophoneDynamicInfo.aidl",
95        "aidl/android/media/audio/common/MicrophoneInfo.aidl",
96        "aidl/android/media/audio/common/PcmType.aidl",
97        "aidl/android/media/audio/common/Spatialization.aidl",
98        "aidl/android/media/audio/common/Void.aidl",
99    ],
100    stability: "vintf",
101    backend: {
102        cpp: {
103            min_sdk_version: "29",
104            apex_available: [
105                "//apex_available:platform",
106                "com.android.media",
107            ],
108        },
109        java: {
110            sdk_version: "module_current",
111            min_sdk_version: "29",
112            apex_available: [
113                "//apex_available:platform",
114                "com.android.car.framework",
115            ],
116            lint: {
117                baseline_filename: "lint-baseline.xml",
118            },
119        },
120        ndk: {
121            min_sdk_version: "29",
122            apex_available: [
123                "//apex_available:platform",
124                "com.android.btservices",
125            ],
126        },
127        rust: {
128            enabled: true,
129        },
130    },
131    versions_with_info: [
132        {
133            version: "1",
134            imports: [],
135        },
136        {
137            version: "2",
138            imports: [],
139        },
140        {
141            version: "3",
142            imports: [],
143        },
144
145        // IMPORTANT: Update latest_android_media_audio_common_types every time
146        // you add the latest frozen version to versions_with_info
147    ],
148    frozen: false,
149
150}
151
152// Note: This should always be one version ahead of the last frozen version
153latest_android_media_audio_common_types = "android.media.audio.common.types-V4"
154
155// Modules that depend on android.media.audio.common.types directly can include
156// the following cc_defaults to avoid explicitly managing dependency versions
157// across many scattered files.
158cc_defaults {
159    name: "latest_android_media_audio_common_types_cpp_shared",
160    shared_libs: [
161        latest_android_media_audio_common_types + "-cpp",
162    ],
163}
164
165cc_defaults {
166    name: "latest_android_media_audio_common_types_cpp_export_shared",
167    defaults: [
168        "latest_android_media_audio_common_types_cpp_shared",
169    ],
170    export_shared_lib_headers: [
171        latest_android_media_audio_common_types + "-cpp",
172    ],
173}
174
175cc_defaults {
176    name: "latest_android_media_audio_common_types_cpp_static",
177    static_libs: [
178        latest_android_media_audio_common_types + "-cpp",
179    ],
180}
181
182cc_defaults {
183    name: "latest_android_media_audio_common_types_cpp_export_static",
184    defaults: [
185        "latest_android_media_audio_common_types_cpp_static",
186    ],
187    export_static_lib_headers: [
188        latest_android_media_audio_common_types + "-cpp",
189    ],
190}
191
192cc_defaults {
193    name: "latest_android_media_audio_common_types_ndk_shared",
194    shared_libs: [
195        latest_android_media_audio_common_types + "-ndk",
196    ],
197}
198
199cc_defaults {
200    name: "latest_android_media_audio_common_types_ndk_static",
201    static_libs: [
202        latest_android_media_audio_common_types + "-ndk",
203    ],
204}
205
206cc_defaults {
207    name: "latest_android_media_audio_common_types_cpp_target_shared",
208    target: {
209        android: {
210            shared_libs: [
211                latest_android_media_audio_common_types + "-cpp",
212            ],
213        },
214    },
215}
216
217rust_defaults {
218    name: "latest_android_media_audio_common_types_rust",
219    rustlibs: [
220        latest_android_media_audio_common_types + "-rust",
221    ],
222}
223
224aidl_interface_defaults {
225    name: "latest_android_media_audio_common_types_import_interface",
226    imports: [
227        latest_android_media_audio_common_types,
228    ],
229}
230
231aidl_interface {
232    name: "android.media.soundtrigger.types",
233    vendor_available: true,
234    host_supported: true,
235    flags: [
236        "-Werror",
237        "-Weverything",
238    ],
239    local_include_dir: "aidl",
240    srcs: [
241        "aidl/android/media/soundtrigger/AudioCapabilities.aidl",
242        "aidl/android/media/soundtrigger/ConfidenceLevel.aidl",
243        "aidl/android/media/soundtrigger/ModelParameter.aidl",
244        "aidl/android/media/soundtrigger/ModelParameterRange.aidl",
245        "aidl/android/media/soundtrigger/Phrase.aidl",
246        "aidl/android/media/soundtrigger/PhraseRecognitionEvent.aidl",
247        "aidl/android/media/soundtrigger/PhraseRecognitionExtra.aidl",
248        "aidl/android/media/soundtrigger/PhraseSoundModel.aidl",
249        "aidl/android/media/soundtrigger/Properties.aidl",
250        "aidl/android/media/soundtrigger/RecognitionConfig.aidl",
251        "aidl/android/media/soundtrigger/RecognitionEvent.aidl",
252        "aidl/android/media/soundtrigger/RecognitionMode.aidl",
253        "aidl/android/media/soundtrigger/RecognitionStatus.aidl",
254        "aidl/android/media/soundtrigger/SoundModel.aidl",
255        "aidl/android/media/soundtrigger/SoundModelType.aidl",
256        "aidl/android/media/soundtrigger/Status.aidl",
257    ],
258    stability: "vintf",
259    backend: {
260        cpp: {
261            enabled: true,
262        },
263        java: {
264            sdk_version: "module_current",
265        },
266    },
267    imports: [
268        latest_android_media_audio_common_types,
269    ],
270    versions_with_info: [
271        {
272            version: "1",
273            imports: ["android.media.audio.common.types-V2"],
274        },
275        {
276            version: "2",
277            imports: ["android.media.audio.common.types-V3"],
278        },
279
280    ],
281    frozen: false,
282
283}
284
285// Note: This should always be one version ahead of the last frozen version
286latest_android_media_soundtrigger_types = "android.media.soundtrigger.types-V3"
287
288cc_defaults {
289    name: "latest_android_media_soundtrigger_types_cpp_shared",
290    shared_libs: [
291        latest_android_media_soundtrigger_types + "-cpp",
292    ],
293}
294
295cc_defaults {
296    name: "latest_android_media_soundtrigger_types_cpp_export_shared",
297    defaults: [
298        "latest_android_media_soundtrigger_types_cpp_shared",
299    ],
300    export_shared_lib_headers: [
301        latest_android_media_soundtrigger_types + "-cpp",
302    ],
303}
304
305cc_defaults {
306    name: "latest_android_media_soundtrigger_types_cpp_static",
307    static_libs: [
308        latest_android_media_soundtrigger_types + "-cpp",
309    ],
310}
311
312cc_defaults {
313    name: "latest_android_media_soundtrigger_types_cpp_export_static",
314    defaults: [
315        "latest_android_media_soundtrigger_types_cpp_static",
316    ],
317    export_static_lib_headers: [
318        latest_android_media_soundtrigger_types + "-cpp",
319    ],
320}
321
322cc_defaults {
323    name: "latest_android_media_soundtrigger_types_ndk_shared",
324    shared_libs: [
325        latest_android_media_soundtrigger_types + "-ndk",
326    ],
327}
328
329cc_defaults {
330    name: "latest_android_media_soundtrigger_types_ndk_static",
331    static_libs: [
332        latest_android_media_soundtrigger_types + "-ndk",
333    ],
334}
335
336cc_defaults {
337    name: "latest_android_media_soundtrigger_types_cpp_target_shared",
338    target: {
339        android: {
340            shared_libs: [
341                latest_android_media_soundtrigger_types + "-cpp",
342            ],
343        },
344    },
345}
346
347aidl_interface_defaults {
348    name: "latest_android_media_soundtrigger_types_import_interface",
349    imports: [
350        latest_android_media_soundtrigger_types,
351    ],
352}
353
354aidl_interface {
355    name: "android.media.audio.eraser.types",
356    vendor_available: true,
357    host_supported: true,
358    flags: [
359        "-Werror",
360        "-Weverything",
361    ],
362    local_include_dir: "aidl",
363    srcs: [
364        "aidl/android/media/audio/eraser/Capability.aidl",
365        "aidl/android/media/audio/eraser/Classification.aidl",
366        "aidl/android/media/audio/eraser/ClassificationConfig.aidl",
367        "aidl/android/media/audio/eraser/ClassificationMetadata.aidl",
368        "aidl/android/media/audio/eraser/ClassificationMetadataList.aidl",
369        "aidl/android/media/audio/eraser/ClassifierCapability.aidl",
370        "aidl/android/media/audio/eraser/Configuration.aidl",
371        "aidl/android/media/audio/eraser/IEraserCallback.aidl",
372        "aidl/android/media/audio/eraser/Mode.aidl",
373        "aidl/android/media/audio/eraser/RemixerCapability.aidl",
374        "aidl/android/media/audio/eraser/SeparatorCapability.aidl",
375        "aidl/android/media/audio/eraser/SoundClassification.aidl",
376    ],
377    stability: "vintf",
378    backend: {
379        cpp: {
380            enabled: true,
381        },
382        java: {
383            sdk_version: "module_current",
384        },
385    },
386    imports: [
387        latest_android_media_audio_common_types,
388    ],
389    frozen: false,
390}
391
392// Note: This should always be one version ahead of the last frozen version
393latest_android_media_audio_eraser_types = "android.media.audio.eraser.types-V1"
394
395cc_defaults {
396    name: "latest_android_media_audio_eraser_types_cpp_shared",
397    shared_libs: [
398        latest_android_media_audio_eraser_types + "-cpp",
399    ],
400}
401
402cc_defaults {
403    name: "latest_android_media_audio_eraser_types_cpp_export_shared",
404    defaults: [
405        "latest_android_media_audio_eraser_types_cpp_shared",
406    ],
407    export_shared_lib_headers: [
408        latest_android_media_audio_eraser_types + "-cpp",
409    ],
410}
411
412cc_defaults {
413    name: "latest_android_media_audio_eraser_types_cpp_static",
414    static_libs: [
415        latest_android_media_audio_eraser_types + "-cpp",
416    ],
417}
418
419cc_defaults {
420    name: "latest_android_media_audio_eraser_types_cpp_export_static",
421    defaults: [
422        "latest_android_media_audio_eraser_types_cpp_static",
423    ],
424    export_static_lib_headers: [
425        latest_android_media_audio_eraser_types + "-cpp",
426    ],
427}
428
429cc_defaults {
430    name: "latest_android_media_audio_eraser_types_ndk_shared",
431    shared_libs: [
432        latest_android_media_audio_eraser_types + "-ndk",
433    ],
434}
435
436cc_defaults {
437    name: "latest_android_media_audio_eraser_types_ndk_static",
438    static_libs: [
439        latest_android_media_audio_eraser_types + "-ndk",
440    ],
441}
442
443cc_defaults {
444    name: "latest_android_media_audio_eraser_types_cpp_target_shared",
445    target: {
446        android: {
447            shared_libs: [
448                latest_android_media_audio_eraser_types + "-cpp",
449            ],
450        },
451    },
452}
453
454aidl_interface_defaults {
455    name: "latest_android_media_audio_eraser_types_import_interface",
456    imports: [
457        latest_android_media_audio_eraser_types,
458    ],
459}
460