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