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