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