xref: /aosp_15_r20/frameworks/av/media/libaudioclient/Android.bp (revision ec779b8e0859a360c3d303172224686826e6e0e1)
1package {
2    default_team: "trendy_team_media_framework_audio",
3    // See: http://go/android-license-faq
4    // A large-scale-change added 'default_applicable_licenses' to import
5    // all of the 'license_kinds' from "frameworks_av_license"
6    // to get the below license kinds:
7    //   SPDX-license-identifier-Apache-2.0
8    default_applicable_licenses: ["frameworks_av_license"],
9}
10
11cc_library_headers {
12    name: "libaudioclient_headers",
13    vendor_available: true,
14    min_sdk_version: "29",
15    apex_available: [
16        "//apex_available:platform",
17        "com.android.media",
18    ],
19    host_supported: true,
20
21    header_libs: [
22        "libaudiofoundation_headers",
23    ],
24    export_include_dirs: [
25        "include",
26    ],
27    export_header_lib_headers: [
28        "libaudiofoundation_headers",
29    ],
30    static_libs: [
31        "audioflinger-aidl-cpp",
32        "audiopolicy-aidl-cpp",
33        "av-types-aidl-cpp",
34        "spatializer-aidl-cpp",
35    ],
36    export_static_lib_headers: [
37        "audioflinger-aidl-cpp",
38        "audiopolicy-aidl-cpp",
39        "av-types-aidl-cpp",
40        "spatializer-aidl-cpp",
41    ],
42    target: {
43        darwin: {
44            enabled: false,
45        },
46    },
47}
48
49cc_library {
50    name: "libaudiopolicy",
51    srcs: [
52        "AudioPolicy.cpp",
53        "AudioProductStrategy.cpp",
54        "AudioVolumeGroup.cpp",
55        "PolicyAidlConversion.cpp",
56        "VolumeGroupAttributes.cpp",
57    ],
58    defaults: [
59        "latest_android_media_audio_common_types_cpp_export_shared",
60    ],
61    shared_libs: [
62        "audioclient-types-aidl-cpp",
63        "audioflinger-aidl-cpp",
64        "audiopolicy-aidl-cpp",
65        "audiopolicy-types-aidl-cpp",
66        "capture_state_listener-aidl-cpp",
67        "framework-permission-aidl-cpp",
68        "libaudioclient_aidl_conversion",
69        "libaudiofoundation",
70        "libaudioutils",
71        "libbinder",
72        "libcutils",
73        "liblog",
74        "libutils",
75    ],
76    cflags: [
77        "-Wall",
78        "-Werror",
79    ],
80    include_dirs: ["system/media/audio_utils/include"],
81    export_include_dirs: ["include"],
82    export_shared_lib_headers: [
83        "audioclient-types-aidl-cpp",
84        "audioflinger-aidl-cpp",
85        "audiopolicy-aidl-cpp",
86        "audiopolicy-types-aidl-cpp",
87        "capture_state_listener-aidl-cpp",
88        "libaudioclient_aidl_conversion",
89        "libaudiofoundation",
90    ],
91    header_libs: ["libaudioclient_headers"],
92}
93
94cc_library {
95    name: "libaudioclient",
96
97    aidl: {
98        export_aidl_headers: true,
99        local_include_dirs: ["aidl"],
100        include_dirs: [
101            "frameworks/av/aidl",
102        ],
103    },
104
105    srcs: [
106        // AIDL files for audioclient interfaces
107        // The headers for these interfaces will be available to any modules that
108        // include libaudioclient, at the path "aidl/package/path/BnFoo.h"
109        ":libaudioclient_aidl",
110
111        "AudioEffect.cpp",
112        "AudioRecord.cpp",
113        "AudioSystem.cpp",
114        "AudioTrack.cpp",
115        "AudioTrackShared.cpp",
116        "IAudioFlinger.cpp",
117        "PlayerBase.cpp",
118        "RecordingActivityTracker.cpp",
119        "ToneGenerator.cpp",
120        "TrackPlayerBase.cpp",
121    ],
122    defaults: [
123        "latest_android_media_audio_common_types_cpp_shared",
124    ],
125    shared_libs: [
126        "android.media.audiopolicy-aconfig-cc",
127        "audioclient-types-aidl-cpp",
128        "audioflinger-aidl-cpp",
129        "audiopolicy-aidl-cpp",
130        "audiopolicy-types-aidl-cpp",
131        "av-types-aidl-cpp",
132        "capture_state_listener-aidl-cpp",
133        "com.android.media.audioclient-aconfig-cc",
134        "framework-permission-aidl-cpp",
135        "libaudio_aidl_conversion_common_cpp",
136        "libaudioclient_aidl_conversion",
137        "libaudiofoundation",
138        "libaudiomanager",
139        "libaudiopolicy",
140        "libaudioutils",
141        "libbinder",
142        "libcutils",
143        "libdl",
144        "liblog",
145        "libmedia_helper",
146        "libmediametrics",
147        "libmediautils",
148        "libnblog",
149        "libprocessgroup",
150        "libshmemcompat",
151        "libutils",
152        "packagemanager_aidl-cpp",
153        "spatializer-aidl-cpp",
154    ],
155    export_shared_lib_headers: [
156        "audioflinger-aidl-cpp",
157        "audiopolicy-aidl-cpp",
158        "framework-permission-aidl-cpp",
159        "libbinder",
160        "libmediametrics",
161        "libmediautils",
162        "spatializer-aidl-cpp",
163    ],
164
165    include_dirs: [
166        "frameworks/av/media/libnbaio/include_mono/",
167    ],
168    local_include_dirs: [
169        "aidl",
170        "include/media",
171    ],
172    header_libs: [
173        "libaudioclient_headers",
174        "libbase_headers",
175        "libmedia_headers",
176    ],
177    export_header_lib_headers: ["libaudioclient_headers"],
178    export_static_lib_headers: [
179        "effect-aidl-cpp",
180        "shared-file-region-aidl-cpp",
181    ],
182
183    static_libs: [
184        "effect-aidl-cpp",
185        // for memory heap analysis
186        "libc_malloc_debug_backtrace",
187        "shared-file-region-aidl-cpp",
188    ],
189    cflags: [
190        "-Wall",
191        "-Werror",
192        "-Wno-error=deprecated-declarations",
193        "-Wthread-safety",
194    ],
195    sanitize: {
196        misc_undefined: [
197            "signed-integer-overflow",
198            "unsigned-integer-overflow",
199        ],
200    },
201}
202
203cc_library {
204    name: "libaudioclient_aidl_conversion",
205    srcs: ["AidlConversion.cpp"],
206    shared_libs: [
207        "audioclient-types-aidl-cpp",
208        "av-types-aidl-cpp",
209    ],
210    static_libs: [
211        "libaudio_aidl_conversion_common_cpp",
212    ],
213    export_include_dirs: ["include"],
214    header_libs: [
215        "libaudio_aidl_conversion_common_util_cpp",
216    ],
217    export_header_lib_headers: [
218        "libaudio_aidl_conversion_common_util_cpp",
219    ],
220    export_shared_lib_headers: [
221        "audioclient-types-aidl-cpp",
222        "av-types-aidl-cpp",
223    ],
224    defaults: [
225        "audio_aidl_conversion_common_default",
226        "audio_aidl_conversion_common_default_cpp",
227        "latest_android_media_audio_common_types_cpp_export_shared",
228    ],
229}
230
231// AIDL interface between libaudioclient and framework.jar
232filegroup {
233    name: "libaudioclient_aidl",
234    srcs: [
235        "aidl/android/media/AudioHalVersion.aidl",
236        "aidl/android/media/IPlayer.aidl",
237    ],
238    path: "aidl",
239}
240
241aidl_interface {
242    name: "capture_state_listener-aidl",
243    unstable: true,
244    local_include_dir: "aidl",
245    host_supported: true,
246    double_loadable: true,
247    vendor_available: true,
248    srcs: [
249        "aidl/android/media/ICaptureStateListener.aidl",
250    ],
251}
252
253aidl_interface {
254    name: "effect-aidl",
255    unstable: true,
256    local_include_dir: "aidl",
257    host_supported: true,
258    double_loadable: true,
259    vendor_available: true,
260    srcs: [
261        "aidl/android/media/EffectConfig.aidl",
262        "aidl/android/media/IEffect.aidl",
263        "aidl/android/media/IEffectClient.aidl",
264    ],
265    defaults: [
266        "latest_android_media_audio_common_types_import_interface",
267    ],
268    imports: [
269        "shared-file-region-aidl",
270    ],
271    backend: {
272        cpp: {
273            min_sdk_version: "29",
274            apex_available: [
275                "//apex_available:platform",
276                "com.android.media",
277            ],
278        },
279        java: {
280            sdk_version: "module_current",
281        },
282    },
283}
284
285aidl_interface {
286    name: "audioclient-types-aidl",
287    unstable: true,
288    host_supported: true,
289    vendor_available: true,
290    double_loadable: true,
291    local_include_dir: "aidl",
292    srcs: [
293        "aidl/android/media/AudioClient.aidl",
294        "aidl/android/media/AudioDirectMode.aidl",
295        "aidl/android/media/AudioGainSys.aidl",
296        "aidl/android/media/AudioHalVersion.aidl",
297        "aidl/android/media/AudioHwModule.aidl",
298        "aidl/android/media/AudioIoConfigEvent.aidl",
299        "aidl/android/media/AudioIoDescriptor.aidl",
300        "aidl/android/media/AudioPatchFw.aidl",
301        "aidl/android/media/AudioPolicyConfig.aidl",
302        "aidl/android/media/AudioPortConfigFw.aidl",
303        "aidl/android/media/AudioPortConfigSys.aidl",
304        "aidl/android/media/AudioPortDeviceExtSys.aidl",
305        "aidl/android/media/AudioPortExtSys.aidl",
306        "aidl/android/media/AudioPortFw.aidl",
307        "aidl/android/media/AudioPortMixExtSys.aidl",
308        "aidl/android/media/AudioPortRole.aidl",
309        "aidl/android/media/AudioPortSys.aidl",
310        "aidl/android/media/AudioPortType.aidl",
311        "aidl/android/media/AudioProfileSys.aidl",
312        "aidl/android/media/AudioRoute.aidl",
313        "aidl/android/media/AudioTimestampInternal.aidl",
314        "aidl/android/media/AudioUniqueIdUse.aidl",
315        "aidl/android/media/AudioVibratorInfo.aidl",
316        "aidl/android/media/DeviceConnectedState.aidl",
317        "aidl/android/media/EffectDescriptor.aidl",
318        "aidl/android/media/SurroundSoundConfig.aidl",
319        "aidl/android/media/TrackInternalMuteInfo.aidl",
320        "aidl/android/media/TrackSecondaryOutputInfo.aidl",
321    ],
322    defaults: [
323        "latest_android_media_audio_common_types_import_interface",
324    ],
325    imports: [
326        "framework-permission-aidl",
327    ],
328    backend: {
329        cpp: {
330            min_sdk_version: "29",
331            apex_available: [
332                "//apex_available:platform",
333                "com.android.media",
334            ],
335        },
336        java: {
337            sdk_version: "module_current",
338        },
339    },
340}
341
342aidl_interface {
343    name: "audiopolicy-types-aidl",
344    unstable: true,
345    host_supported: true,
346    vendor_available: true,
347    double_loadable: true,
348    local_include_dir: "aidl",
349    srcs: [
350        "aidl/android/media/AudioAttributesEx.aidl",
351        "aidl/android/media/AudioMix.aidl",
352        "aidl/android/media/AudioMixCallbackFlag.aidl",
353        "aidl/android/media/AudioMixMatchCriterion.aidl",
354        "aidl/android/media/AudioMixMatchCriterionValue.aidl",
355        "aidl/android/media/AudioMixRouteFlag.aidl",
356        "aidl/android/media/AudioMixType.aidl",
357        "aidl/android/media/AudioMixUpdate.aidl",
358        "aidl/android/media/AudioMixerAttributesInternal.aidl",
359        "aidl/android/media/AudioMixerBehavior.aidl",
360        "aidl/android/media/AudioOffloadMode.aidl",
361        "aidl/android/media/AudioPolicyDeviceState.aidl",
362        "aidl/android/media/AudioPolicyForceUse.aidl",
363        "aidl/android/media/AudioPolicyForcedConfig.aidl",
364        "aidl/android/media/AudioProductStrategy.aidl",
365        "aidl/android/media/AudioVolumeGroup.aidl",
366        "aidl/android/media/DeviceRole.aidl",
367        "aidl/android/media/SoundTriggerSession.aidl",
368    ],
369    defaults: [
370        "latest_android_media_audio_common_types_import_interface",
371    ],
372    imports: [
373        "audioclient-types-aidl",
374        "framework-permission-aidl",
375    ],
376    backend: {
377        cpp: {
378            min_sdk_version: "29",
379            apex_available: [
380                "//apex_available:platform",
381                "com.android.media",
382            ],
383        },
384        java: {
385            sdk_version: "module_current",
386        },
387    },
388}
389
390aidl_interface {
391    name: "audioflinger-aidl",
392    unstable: true,
393    local_include_dir: "aidl",
394    host_supported: true,
395    vendor_available: true,
396    srcs: [
397        "aidl/android/media/CreateEffectRequest.aidl",
398        "aidl/android/media/CreateEffectResponse.aidl",
399        "aidl/android/media/CreateRecordRequest.aidl",
400        "aidl/android/media/CreateRecordResponse.aidl",
401        "aidl/android/media/CreateTrackRequest.aidl",
402        "aidl/android/media/CreateTrackResponse.aidl",
403        "aidl/android/media/OpenInputRequest.aidl",
404        "aidl/android/media/OpenInputResponse.aidl",
405        "aidl/android/media/OpenOutputRequest.aidl",
406        "aidl/android/media/OpenOutputResponse.aidl",
407        "aidl/android/media/RenderPosition.aidl",
408
409        "aidl/android/media/IAudioFlingerClient.aidl",
410        "aidl/android/media/IAudioFlingerService.aidl",
411        "aidl/android/media/IAudioRecord.aidl",
412        "aidl/android/media/IAudioTrack.aidl",
413        "aidl/android/media/IAudioTrackCallback.aidl",
414
415        "aidl/android/media/ISoundDose.aidl",
416        "aidl/android/media/ISoundDoseCallback.aidl",
417        "aidl/android/media/SoundDoseRecord.aidl",
418    ],
419    defaults: [
420        "latest_android_media_audio_common_types_import_interface",
421    ],
422    imports: [
423        "audioclient-types-aidl",
424        "av-types-aidl",
425        "effect-aidl",
426        "framework-permission-aidl",
427        "shared-file-region-aidl",
428    ],
429    double_loadable: true,
430    backend: {
431        cpp: {
432            min_sdk_version: "29",
433            apex_available: [
434                "//apex_available:platform",
435                "com.android.media",
436            ],
437        },
438        java: {
439            sdk_version: "module_current",
440        },
441    },
442}
443
444aidl_interface {
445    name: "audiopolicy-aidl",
446    unstable: true,
447    local_include_dir: "aidl",
448    host_supported: true,
449    vendor_available: true,
450    srcs: [
451        "aidl/android/media/GetInputForAttrResponse.aidl",
452        "aidl/android/media/GetOutputForAttrResponse.aidl",
453        "aidl/android/media/GetSpatializerResponse.aidl",
454        "aidl/android/media/IAudioPolicyService.aidl",
455        "aidl/android/media/IAudioPolicyServiceClient.aidl",
456        "aidl/android/media/RecordClientInfo.aidl",
457    ],
458    defaults: [
459        "latest_android_media_audio_common_types_import_interface",
460    ],
461    imports: [
462        "audio-permission-aidl",
463        "audioclient-types-aidl",
464        "audiopolicy-types-aidl",
465        "capture_state_listener-aidl",
466        "framework-permission-aidl",
467        "spatializer-aidl",
468    ],
469
470    double_loadable: true,
471    backend: {
472        cpp: {
473            min_sdk_version: "29",
474            apex_available: [
475                "//apex_available:platform",
476                "com.android.media",
477            ],
478        },
479        java: {
480            sdk_version: "module_current",
481        },
482    },
483}
484
485aidl_interface {
486    name: "spatializer-aidl",
487    unstable: true,
488    local_include_dir: "aidl",
489    host_supported: true,
490    vendor_available: true,
491    srcs: [
492        "aidl/android/media/INativeSpatializerCallback.aidl",
493        "aidl/android/media/ISpatializer.aidl",
494        "aidl/android/media/ISpatializerHeadTrackingCallback.aidl",
495    ],
496    defaults: [
497        "latest_android_media_audio_common_types_import_interface",
498    ],
499    imports: [
500        "audiopolicy-types-aidl",
501    ],
502
503    double_loadable: true,
504    backend: {
505        cpp: {
506            min_sdk_version: "29",
507            apex_available: [
508                "//apex_available:platform",
509                "com.android.media",
510            ],
511        },
512        java: {
513            sdk_version: "module_current",
514        },
515    },
516}
517
518aidl_interface {
519    name: "sounddose-aidl",
520    unstable: true,
521    local_include_dir: "aidl",
522    srcs: [
523        "aidl/android/media/ISoundDose.aidl",
524        "aidl/android/media/ISoundDoseCallback.aidl",
525        "aidl/android/media/SoundDoseRecord.aidl",
526    ],
527
528    double_loadable: true,
529    backend: {
530        java: {
531            sdk_version: "module_current",
532        },
533    },
534}
535