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