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