package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "frameworks_av_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["frameworks_av_license"], } cc_library_headers { name: "libaudioclient_headers", vendor_available: true, min_sdk_version: "29", host_supported: true, header_libs: [ "libaudiofoundation_headers", ], export_include_dirs: [ "include", ], export_header_lib_headers: [ "libaudiofoundation_headers", ], static_libs: [ "audioflinger-aidl-cpp", "audiopolicy-aidl-cpp", "av-types-aidl-cpp", ], export_static_lib_headers: [ "audioflinger-aidl-cpp", "audiopolicy-aidl-cpp", "av-types-aidl-cpp", ], target: { darwin: { enabled: false, }, }, } cc_library_shared { name: "libaudiopolicy", srcs: [ "AudioAttributes.cpp", "AudioPolicy.cpp", "AudioProductStrategy.cpp", "AudioVolumeGroup.cpp", "PolicyAidlConversion.cpp" ], shared_libs: [ "audioclient-types-aidl-cpp", "audioflinger-aidl-cpp", "audiopolicy-aidl-cpp", "audiopolicy-types-aidl-cpp", "capture_state_listener-aidl-cpp", "libaudiofoundation", "libaudioclient_aidl_conversion", "libaudioutils", "libbinder", "libcutils", "liblog", "libutils", ], cflags: [ "-Werror", "-Wall", ], include_dirs: ["system/media/audio_utils/include"], export_include_dirs: ["include"], export_shared_lib_headers: [ "audioclient-types-aidl-cpp", "audioflinger-aidl-cpp", "audiopolicy-aidl-cpp", "audiopolicy-types-aidl-cpp", "capture_state_listener-aidl-cpp", "libaudiofoundation", "libaudioclient_aidl_conversion", ], header_libs: ["libaudioclient_headers"], } cc_library { name: "libaudioclient", aidl: { export_aidl_headers: true, local_include_dirs: ["aidl"], include_dirs: [ "frameworks/av/aidl", ], }, srcs: [ // AIDL files for audioclient interfaces // The headers for these interfaces will be available to any modules that // include libaudioclient, at the path "aidl/package/path/BnFoo.h" ":libaudioclient_aidl", "AudioEffect.cpp", "AudioRecord.cpp", "AudioSystem.cpp", "AudioTrack.cpp", "AudioTrackShared.cpp", "IAudioFlinger.cpp", "ToneGenerator.cpp", "PlayerBase.cpp", "RecordingActivityTracker.cpp", "TrackPlayerBase.cpp", ], shared_libs: [ "audioclient-types-aidl-cpp", "audioflinger-aidl-cpp", "audiopolicy-aidl-cpp", "audiopolicy-types-aidl-cpp", "av-types-aidl-cpp", "capture_state_listener-aidl-cpp", "libaudioclient_aidl_conversion", "libaudiofoundation", "libaudioutils", "libaudiopolicy", "libaudiomanager", "libbinder", "libcutils", "libdl", "liblog", "libmedia_helper", "libmediametrics", "libmediautils", "libnblog", "libprocessgroup", "libshmemcompat", "libutils", "libvibrator", "framework-permission-aidl-cpp", ], export_shared_lib_headers: [ "audioflinger-aidl-cpp", "audiopolicy-aidl-cpp", "framework-permission-aidl-cpp", "libbinder", ], include_dirs: [ "frameworks/av/media/libnbaio/include_mono/", ], local_include_dirs: [ "include/media", "aidl", ], header_libs: [ "libaudioclient_headers", "libbase_headers", "libmedia_headers", ], export_header_lib_headers: ["libaudioclient_headers"], export_static_lib_headers: [ "effect-aidl-cpp", "shared-file-region-aidl-cpp", ], static_libs: [ "effect-aidl-cpp", // for memory heap analysis "libc_malloc_debug_backtrace", "shared-file-region-aidl-cpp", ], cflags: [ "-Wall", "-Werror", "-Wno-error=deprecated-declarations", ], sanitize: { misc_undefined: [ "unsigned-integer-overflow", "signed-integer-overflow", ], }, } // This is intended for clients needing to include AidlConversionUtil.h, without dragging in a lot of extra // dependencies. cc_library_headers { name: "libaudioclient_aidl_conversion_util", host_supported: true, vendor_available: true, double_loadable: true, min_sdk_version: "29", export_include_dirs: [ "include", ], header_libs: [ "libbase_headers", ], export_header_lib_headers: [ "libbase_headers", ], apex_available: [ "//apex_available:platform", "com.android.bluetooth.updatable", "com.android.media", "com.android.media.swcodec", ], target: { darwin: { enabled: false, }, }, } cc_library { name: "libaudioclient_aidl_conversion", srcs: ["AidlConversion.cpp"], export_include_dirs: ["include"], host_supported: true, vendor_available: true, double_loadable: true, min_sdk_version: "29", header_libs: [ "libaudioclient_aidl_conversion_util", "libaudio_system_headers", ], export_header_lib_headers: [ "libaudioclient_aidl_conversion_util", ], shared_libs: [ "audioclient-types-aidl-cpp", "libbase", "libbinder", "liblog", "libshmemcompat", "libutils", "shared-file-region-aidl-cpp", "framework-permission-aidl-cpp", ], export_shared_lib_headers: [ "audioclient-types-aidl-cpp", "libbase", "shared-file-region-aidl-cpp", ], cflags: [ "-Wall", "-Werror", "-Wno-error=deprecated-declarations", ], sanitize: { misc_undefined: [ "unsigned-integer-overflow", "signed-integer-overflow", ], }, target: { darwin: { enabled: false, }, }, } // AIDL interface between libaudioclient and framework.jar filegroup { name: "libaudioclient_aidl", srcs: [ "aidl/android/media/IPlayer.aidl", ], path: "aidl", } aidl_interface { name: "capture_state_listener-aidl", unstable: true, local_include_dir: "aidl", host_supported: true, double_loadable: true, vendor_available: true, srcs: [ "aidl/android/media/ICaptureStateListener.aidl", ], } aidl_interface { name: "effect-aidl", unstable: true, local_include_dir: "aidl", host_supported: true, double_loadable: true, vendor_available: true, srcs: [ "aidl/android/media/IEffect.aidl", "aidl/android/media/IEffectClient.aidl", ], imports: [ "shared-file-region-aidl", ], } aidl_interface { name: "audioclient-types-aidl", unstable: true, host_supported: true, vendor_available: true, double_loadable: true, local_include_dir: "aidl", srcs: [ "aidl/android/media/AudioAttributesInternal.aidl", "aidl/android/media/AudioClient.aidl", "aidl/android/media/AudioConfig.aidl", "aidl/android/media/AudioConfigBase.aidl", "aidl/android/media/AudioContentType.aidl", "aidl/android/media/AudioDevice.aidl", "aidl/android/media/AudioDualMonoMode.aidl", "aidl/android/media/AudioEncapsulationMode.aidl", "aidl/android/media/AudioEncapsulationMetadataType.aidl", "aidl/android/media/AudioEncapsulationType.aidl", "aidl/android/media/AudioFlag.aidl", "aidl/android/media/AudioGain.aidl", "aidl/android/media/AudioGainConfig.aidl", "aidl/android/media/AudioGainMode.aidl", "aidl/android/media/AudioInputFlags.aidl", "aidl/android/media/AudioIoConfigEvent.aidl", "aidl/android/media/AudioIoDescriptor.aidl", "aidl/android/media/AudioIoFlags.aidl", "aidl/android/media/AudioMixLatencyClass.aidl", "aidl/android/media/AudioMode.aidl", "aidl/android/media/AudioOffloadInfo.aidl", "aidl/android/media/AudioOutputFlags.aidl", "aidl/android/media/AudioPatch.aidl", "aidl/android/media/AudioPlaybackRate.aidl", "aidl/android/media/AudioPort.aidl", "aidl/android/media/AudioPortConfig.aidl", "aidl/android/media/AudioPortConfigType.aidl", "aidl/android/media/AudioPortConfigDeviceExt.aidl", "aidl/android/media/AudioPortConfigExt.aidl", "aidl/android/media/AudioPortConfigMixExt.aidl", "aidl/android/media/AudioPortConfigMixExtUseCase.aidl", "aidl/android/media/AudioPortConfigSessionExt.aidl", "aidl/android/media/AudioPortDeviceExt.aidl", "aidl/android/media/AudioPortExt.aidl", "aidl/android/media/AudioPortMixExt.aidl", "aidl/android/media/AudioPortRole.aidl", "aidl/android/media/AudioPortSessionExt.aidl", "aidl/android/media/AudioPortType.aidl", "aidl/android/media/AudioProfile.aidl", "aidl/android/media/AudioSourceType.aidl", "aidl/android/media/AudioStandard.aidl", "aidl/android/media/AudioStreamType.aidl", "aidl/android/media/AudioTimestampInternal.aidl", "aidl/android/media/AudioUniqueIdUse.aidl", "aidl/android/media/AudioUsage.aidl", "aidl/android/media/AudioUuid.aidl", "aidl/android/media/AudioVibratorInfo.aidl", "aidl/android/media/EffectDescriptor.aidl", "aidl/android/media/ExtraAudioDescriptor.aidl", "aidl/android/media/TrackSecondaryOutputInfo.aidl", ], imports: [ "audio_common-aidl", "framework-permission-aidl", ], backend: { cpp: { min_sdk_version: "29", apex_available: [ "//apex_available:platform", "com.android.media", ], }, }, } aidl_interface { name: "audiopolicy-types-aidl", unstable: true, host_supported: true, vendor_available: true, double_loadable: true, local_include_dir: "aidl", srcs: [ "aidl/android/media/AudioAttributesEx.aidl", "aidl/android/media/AudioMix.aidl", "aidl/android/media/AudioMixCallbackFlag.aidl", "aidl/android/media/AudioMixMatchCriterion.aidl", "aidl/android/media/AudioMixMatchCriterionValue.aidl", "aidl/android/media/AudioMixRouteFlag.aidl", "aidl/android/media/AudioMixType.aidl", "aidl/android/media/AudioOffloadMode.aidl", "aidl/android/media/AudioPolicyDeviceState.aidl", "aidl/android/media/AudioPolicyForceUse.aidl", "aidl/android/media/AudioPolicyForcedConfig.aidl", "aidl/android/media/AudioProductStrategy.aidl", "aidl/android/media/AudioVolumeGroup.aidl", "aidl/android/media/DeviceRole.aidl", "aidl/android/media/SoundTriggerSession.aidl", ], imports: [ "audio_common-aidl", "audioclient-types-aidl", ], backend: { cpp: { min_sdk_version: "29", apex_available: [ "//apex_available:platform", "com.android.media", ], }, }, } aidl_interface { name: "audioflinger-aidl", unstable: true, local_include_dir: "aidl", host_supported: true, vendor_available: true, srcs: [ "aidl/android/media/CreateEffectRequest.aidl", "aidl/android/media/CreateEffectResponse.aidl", "aidl/android/media/CreateRecordRequest.aidl", "aidl/android/media/CreateRecordResponse.aidl", "aidl/android/media/CreateTrackRequest.aidl", "aidl/android/media/CreateTrackResponse.aidl", "aidl/android/media/OpenInputRequest.aidl", "aidl/android/media/OpenInputResponse.aidl", "aidl/android/media/OpenOutputRequest.aidl", "aidl/android/media/OpenOutputResponse.aidl", "aidl/android/media/RenderPosition.aidl", "aidl/android/media/IAudioFlingerService.aidl", "aidl/android/media/IAudioFlingerClient.aidl", "aidl/android/media/IAudioRecord.aidl", "aidl/android/media/IAudioTrack.aidl", "aidl/android/media/IAudioTrackCallback.aidl", ], imports: [ "audio_common-aidl", "audioclient-types-aidl", "av-types-aidl", "effect-aidl", "shared-file-region-aidl", "framework-permission-aidl", ], double_loadable: true, backend: { cpp: { min_sdk_version: "29", apex_available: [ "//apex_available:platform", "com.android.media", ], }, }, } aidl_interface { name: "audiopolicy-aidl", unstable: true, local_include_dir: "aidl", host_supported: true, vendor_available: true, srcs: [ "aidl/android/media/GetInputForAttrResponse.aidl", "aidl/android/media/GetOutputForAttrResponse.aidl", "aidl/android/media/Int.aidl", "aidl/android/media/RecordClientInfo.aidl", "aidl/android/media/IAudioPolicyService.aidl", "aidl/android/media/IAudioPolicyServiceClient.aidl", ], imports: [ "audio_common-aidl", "audioclient-types-aidl", "audiopolicy-types-aidl", "capture_state_listener-aidl", "framework-permission-aidl", ], double_loadable: true, backend: { cpp: { min_sdk_version: "29", apex_available: [ "//apex_available:platform", "com.android.media", ], }, }, }