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