Add AudioAttributes and AudioFlag for use in HAL interface for engine configuration. am: 4cd3884564
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2203458 Change-Id: Ib0b019bcb015ea0cb6cb151bae1b11507ce7a281 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
committed by
Automerger Merge Worker
commit
90ed92fd64
@@ -255,7 +255,10 @@ filegroup {
|
|||||||
|
|
||||||
java_defaults {
|
java_defaults {
|
||||||
name: "framework-minus-apex-defaults",
|
name: "framework-minus-apex-defaults",
|
||||||
defaults: ["framework-aidl-export-defaults"],
|
defaults: [
|
||||||
|
"framework-aidl-export-defaults",
|
||||||
|
"latest_android_hardware_soundtrigger3_java_static",
|
||||||
|
],
|
||||||
srcs: [
|
srcs: [
|
||||||
":framework-non-updatable-sources",
|
":framework-non-updatable-sources",
|
||||||
"core/java/**/*.logtags",
|
"core/java/**/*.logtags",
|
||||||
@@ -312,8 +315,6 @@ java_defaults {
|
|||||||
sdk_version: "core_platform",
|
sdk_version: "core_platform",
|
||||||
static_libs: [
|
static_libs: [
|
||||||
"android.hardware.common.fmq-V1-java",
|
"android.hardware.common.fmq-V1-java",
|
||||||
// TODO(b/184162091)
|
|
||||||
"android.hardware.soundtrigger3-V1-java",
|
|
||||||
"bouncycastle-repackaged-unbundled",
|
"bouncycastle-repackaged-unbundled",
|
||||||
"framework-internal-utils",
|
"framework-internal-utils",
|
||||||
// If MimeMap ever becomes its own APEX, then this dependency would need to be removed
|
// If MimeMap ever becomes its own APEX, then this dependency would need to be removed
|
||||||
|
|||||||
@@ -80,6 +80,10 @@ cc_library_shared {
|
|||||||
"include",
|
"include",
|
||||||
],
|
],
|
||||||
|
|
||||||
|
defaults: [
|
||||||
|
"latest_android_media_audio_common_types_cpp_target_shared",
|
||||||
|
],
|
||||||
|
|
||||||
target: {
|
target: {
|
||||||
android: {
|
android: {
|
||||||
srcs: [
|
srcs: [
|
||||||
@@ -243,7 +247,6 @@ cc_library_shared {
|
|||||||
],
|
],
|
||||||
|
|
||||||
shared_libs: [
|
shared_libs: [
|
||||||
"android.media.audio.common.types-V1-cpp",
|
|
||||||
"audioclient-types-aidl-cpp",
|
"audioclient-types-aidl-cpp",
|
||||||
"audioflinger-aidl-cpp",
|
"audioflinger-aidl-cpp",
|
||||||
"audiopolicy-types-aidl-cpp",
|
"audiopolicy-types-aidl-cpp",
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ aidl_interface {
|
|||||||
"aidl/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl",
|
"aidl/android/media/soundtrigger_middleware/SoundTriggerModuleDescriptor.aidl",
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
"android.media.audio.common.types-V1",
|
"android.media.audio.common.types",
|
||||||
"android.media.soundtrigger.types-V1",
|
"android.media.soundtrigger.types",
|
||||||
"media_permission-aidl",
|
"media_permission-aidl",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
@@ -52,6 +52,7 @@ aidl_interface {
|
|||||||
],
|
],
|
||||||
local_include_dir: "aidl",
|
local_include_dir: "aidl",
|
||||||
srcs: [
|
srcs: [
|
||||||
|
"aidl/android/media/audio/common/AudioAttributes.aidl",
|
||||||
"aidl/android/media/audio/common/AudioChannelLayout.aidl",
|
"aidl/android/media/audio/common/AudioChannelLayout.aidl",
|
||||||
"aidl/android/media/audio/common/AudioConfig.aidl",
|
"aidl/android/media/audio/common/AudioConfig.aidl",
|
||||||
"aidl/android/media/audio/common/AudioConfigBase.aidl",
|
"aidl/android/media/audio/common/AudioConfigBase.aidl",
|
||||||
@@ -63,6 +64,7 @@ aidl_interface {
|
|||||||
"aidl/android/media/audio/common/AudioEncapsulationMetadataType.aidl",
|
"aidl/android/media/audio/common/AudioEncapsulationMetadataType.aidl",
|
||||||
"aidl/android/media/audio/common/AudioEncapsulationMode.aidl",
|
"aidl/android/media/audio/common/AudioEncapsulationMode.aidl",
|
||||||
"aidl/android/media/audio/common/AudioEncapsulationType.aidl",
|
"aidl/android/media/audio/common/AudioEncapsulationType.aidl",
|
||||||
|
"aidl/android/media/audio/common/AudioFlag.aidl",
|
||||||
"aidl/android/media/audio/common/AudioFormatDescription.aidl",
|
"aidl/android/media/audio/common/AudioFormatDescription.aidl",
|
||||||
"aidl/android/media/audio/common/AudioFormatType.aidl",
|
"aidl/android/media/audio/common/AudioFormatType.aidl",
|
||||||
"aidl/android/media/audio/common/AudioGain.aidl",
|
"aidl/android/media/audio/common/AudioGain.aidl",
|
||||||
@@ -122,10 +124,77 @@ aidl_interface {
|
|||||||
version: "1",
|
version: "1",
|
||||||
imports: [],
|
imports: [],
|
||||||
},
|
},
|
||||||
|
// IMPORTANT: Update latest_android_media_audio_common_types every time
|
||||||
|
// you add the latest frozen version to versions_with_info
|
||||||
],
|
],
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Note: This should always be one version ahead of the last frozen version
|
||||||
|
latest_android_media_audio_common_types = "android.media.audio.common.types-V2"
|
||||||
|
|
||||||
|
// Modules that depend on android.media.audio.common.types directly can include
|
||||||
|
// the following cc_defaults to avoid explicitly managing dependency versions
|
||||||
|
// across many scattered files.
|
||||||
|
cc_defaults {
|
||||||
|
name: "latest_android_media_audio_common_types_cpp_shared",
|
||||||
|
shared_libs: [
|
||||||
|
latest_android_media_audio_common_types + "-cpp",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_defaults {
|
||||||
|
name: "latest_android_media_audio_common_types_cpp_export_shared",
|
||||||
|
defaults: [
|
||||||
|
"latest_android_media_audio_common_types_cpp_shared",
|
||||||
|
],
|
||||||
|
export_shared_lib_headers: [
|
||||||
|
latest_android_media_audio_common_types + "-cpp",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_defaults {
|
||||||
|
name: "latest_android_media_audio_common_types_cpp_static",
|
||||||
|
static_libs: [
|
||||||
|
latest_android_media_audio_common_types + "-cpp",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_defaults {
|
||||||
|
name: "latest_android_media_audio_common_types_cpp_export_static",
|
||||||
|
defaults: [
|
||||||
|
"latest_android_media_audio_common_types_cpp_static",
|
||||||
|
],
|
||||||
|
export_static_lib_headers: [
|
||||||
|
latest_android_media_audio_common_types + "-cpp",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_defaults {
|
||||||
|
name: "latest_android_media_audio_common_types_ndk_shared",
|
||||||
|
shared_libs: [
|
||||||
|
latest_android_media_audio_common_types + "-ndk",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_defaults {
|
||||||
|
name: "latest_android_media_audio_common_types_ndk_static",
|
||||||
|
static_libs: [
|
||||||
|
latest_android_media_audio_common_types + "-ndk",
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
cc_defaults {
|
||||||
|
name: "latest_android_media_audio_common_types_cpp_target_shared",
|
||||||
|
target: {
|
||||||
|
android: {
|
||||||
|
shared_libs: [
|
||||||
|
latest_android_media_audio_common_types + "-cpp",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
aidl_interface {
|
aidl_interface {
|
||||||
name: "android.media.soundtrigger.types",
|
name: "android.media.soundtrigger.types",
|
||||||
vendor_available: true,
|
vendor_available: true,
|
||||||
|
|||||||
59
media/aidl/android/media/audio/common/AudioAttributes.aidl
Normal file
59
media/aidl/android/media/audio/common/AudioAttributes.aidl
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package android.media.audio.common;
|
||||||
|
|
||||||
|
import android.media.audio.common.AudioContentType;
|
||||||
|
import android.media.audio.common.AudioFlag;
|
||||||
|
import android.media.audio.common.AudioSource;
|
||||||
|
import android.media.audio.common.AudioUsage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AudioAttributes give information about an audio stream that is more
|
||||||
|
* descriptive than stream type alone.
|
||||||
|
*/
|
||||||
|
@JavaDerive(equals=true, toString=true)
|
||||||
|
@VintfStability
|
||||||
|
parcelable AudioAttributes {
|
||||||
|
/**
|
||||||
|
* Classifies the content of the audio signal using categories such as
|
||||||
|
* speech or music
|
||||||
|
*/
|
||||||
|
AudioContentType contentType = AudioContentType.UNKNOWN;
|
||||||
|
/**
|
||||||
|
* Classifies the intended use of the audio signal using categories such as
|
||||||
|
* alarm or ringtone
|
||||||
|
*/
|
||||||
|
AudioUsage usage = AudioUsage.UNKNOWN;
|
||||||
|
/**
|
||||||
|
* Classifies the audio source using categories such as voice uplink or
|
||||||
|
* remote submix
|
||||||
|
*/
|
||||||
|
AudioSource source = AudioSource.DEFAULT;
|
||||||
|
/**
|
||||||
|
* Bitmask describing how playback is to be affected.
|
||||||
|
*/
|
||||||
|
int flags = AudioFlag.NONE;
|
||||||
|
/**
|
||||||
|
* Tag is an additional use case qualifier complementing AudioUsage and
|
||||||
|
* AudioContentType. Tags are set by vendor-specific applications and must
|
||||||
|
* be prefixed by "VX_". Vendors must namespace their tag names using the
|
||||||
|
* name of their company to avoid conflicts. The namespace must use at least
|
||||||
|
* three characters, and must go directly after the "VX_" prefix.
|
||||||
|
* For example: "VX_MYCOMPANY_VR".
|
||||||
|
*/
|
||||||
|
@utf8InCpp String[] tags;
|
||||||
|
}
|
||||||
116
media/aidl/android/media/audio/common/AudioFlag.aidl
Normal file
116
media/aidl/android/media/audio/common/AudioFlag.aidl
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package android.media.audio.common;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the audio flags that are used in AudioAttributes
|
||||||
|
*/
|
||||||
|
@Backing(type="int")
|
||||||
|
@VintfStability
|
||||||
|
enum AudioFlag {
|
||||||
|
NONE = 0x0,
|
||||||
|
/**
|
||||||
|
* Flag defining a behavior where the audibility of the sound will be
|
||||||
|
* ensured by the system. To ensure sound audibility, the system only uses
|
||||||
|
* built-in speakers or wired headphones and specifically excludes wireless
|
||||||
|
* audio devices. Note this flag should only be used for sounds subject to
|
||||||
|
* regulatory behaviors in some countries, such as for camera shutter sound,
|
||||||
|
* and not for routing behaviors.
|
||||||
|
*/
|
||||||
|
AUDIBILITY_ENFORCED = 0x1 << 0,
|
||||||
|
/**
|
||||||
|
* Skipping 0x1 << 1. This was previously used for SECURE flag, but because
|
||||||
|
* the security feature was never implemented using this flag, and the flag
|
||||||
|
* was never made public, this value may be used for another flag.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Flag to enable when the stream is associated with SCO usage.
|
||||||
|
* Internal use only for dealing with legacy STREAM_BLUETOOTH_SCO
|
||||||
|
*/
|
||||||
|
SCO = 0x1 << 2,
|
||||||
|
/**
|
||||||
|
* Flag defining a behavior where the system ensures that the playback of
|
||||||
|
* the sound will be compatible with its use as a broadcast for surrounding
|
||||||
|
* people and/or devices. Ensures audibility with no or minimal
|
||||||
|
* post-processing applied.
|
||||||
|
*/
|
||||||
|
BEACON = 0x1 << 3,
|
||||||
|
/**
|
||||||
|
* Flag requesting the use of an output stream supporting hardware A/V
|
||||||
|
* synchronization.
|
||||||
|
*/
|
||||||
|
HW_AV_SYNC = 0x1 << 4,
|
||||||
|
/**
|
||||||
|
* Flag requesting capture from the source used for hardware hotword
|
||||||
|
* detection. To be used with capture preset MediaRecorder.AudioSource
|
||||||
|
* HOTWORD or MediaRecorder.AudioSource.VOICE_RECOGNITION.
|
||||||
|
*/
|
||||||
|
HW_HOTWORD = 0x1 << 5,
|
||||||
|
/**
|
||||||
|
* Flag requesting audible playback even under limited interruptions.
|
||||||
|
*/
|
||||||
|
BYPASS_INTERRUPTION_POLICY = 0x1 << 6,
|
||||||
|
/**
|
||||||
|
* Flag requesting audible playback even when the underlying stream is muted
|
||||||
|
*/
|
||||||
|
BYPASS_MUTE = 0x1 << 7,
|
||||||
|
/**
|
||||||
|
* Flag requesting a low latency path when creating an AudioTrack.
|
||||||
|
* When using this flag, the sample rate must match the native sample rate
|
||||||
|
* of the device. Effects processing is also unavailable.
|
||||||
|
*/
|
||||||
|
LOW_LATENCY = 0x1 << 8,
|
||||||
|
/**
|
||||||
|
* Flag requesting a deep buffer path when creating an AudioTrack.
|
||||||
|
*
|
||||||
|
* A deep buffer path, if available, may consume less power and is
|
||||||
|
* suitable for media playback where latency is not a concern.
|
||||||
|
*/
|
||||||
|
DEEP_BUFFER = 0x1 << 9,
|
||||||
|
/**
|
||||||
|
* Flag specifying that the audio shall not be captured by third-party apps
|
||||||
|
* with a MediaProjection.
|
||||||
|
*/
|
||||||
|
NO_MEDIA_PROJECTION = 0x1 << 10,
|
||||||
|
/**
|
||||||
|
* Flag indicating force muting haptic channels.
|
||||||
|
*/
|
||||||
|
MUTE_HAPTIC = 0x1 << 11,
|
||||||
|
/**
|
||||||
|
* Flag specifying that the audio shall not be captured by any apps, not
|
||||||
|
* even system apps.
|
||||||
|
*/
|
||||||
|
NO_SYSTEM_CAPTURE = 0x1 << 12,
|
||||||
|
/**
|
||||||
|
* Flag requesting private audio capture.
|
||||||
|
*/
|
||||||
|
CAPTURE_PRIVATE = 0x1 << 13,
|
||||||
|
/**
|
||||||
|
* Flag indicating the audio content has been processed to provide a virtual
|
||||||
|
* multichannel audio experience.
|
||||||
|
*/
|
||||||
|
CONTENT_SPATIALIZED = 0x1 << 14,
|
||||||
|
/**
|
||||||
|
* Flag indicating the audio content is never to be spatialized.
|
||||||
|
*/
|
||||||
|
NEVER_SPATIALIZE = 0x1 << 15,
|
||||||
|
/**
|
||||||
|
* Flag indicating the audio is part of a call redirection.
|
||||||
|
* Valid for playback and capture.
|
||||||
|
*/
|
||||||
|
CALL_REDIRECTION = 0x1 << 16,
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
|
||||||
|
// two cases:
|
||||||
|
// 1). this is a frozen version file - do not edit this in any case.
|
||||||
|
// 2). this is a 'current' file. If you make a backwards compatible change to
|
||||||
|
// the interface (from the latest frozen version), the build system will
|
||||||
|
// prompt you to update this file with `m <name>-update-api`.
|
||||||
|
//
|
||||||
|
// You must not make a backward incompatible change to any AIDL file built
|
||||||
|
// with the aidl_interface module type with versions property set. The module
|
||||||
|
// type is used to build AIDL files in a way that they can be used across
|
||||||
|
// independently updatable components of the system. If a device is shipped
|
||||||
|
// with such a backward incompatible change, it has a high risk of breaking
|
||||||
|
// later when a module using the interface is updated, e.g., Mainline modules.
|
||||||
|
|
||||||
|
package android.media.audio.common;
|
||||||
|
@JavaDerive(equals=true, toString=true) @VintfStability
|
||||||
|
parcelable AudioAttributes {
|
||||||
|
android.media.audio.common.AudioContentType contentType = android.media.audio.common.AudioContentType.UNKNOWN;
|
||||||
|
android.media.audio.common.AudioUsage usage = android.media.audio.common.AudioUsage.UNKNOWN;
|
||||||
|
android.media.audio.common.AudioSource source = android.media.audio.common.AudioSource.DEFAULT;
|
||||||
|
int flags = 0;
|
||||||
|
@utf8InCpp String[] tags;
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2022 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
|
||||||
|
// two cases:
|
||||||
|
// 1). this is a frozen version file - do not edit this in any case.
|
||||||
|
// 2). this is a 'current' file. If you make a backwards compatible change to
|
||||||
|
// the interface (from the latest frozen version), the build system will
|
||||||
|
// prompt you to update this file with `m <name>-update-api`.
|
||||||
|
//
|
||||||
|
// You must not make a backward incompatible change to any AIDL file built
|
||||||
|
// with the aidl_interface module type with versions property set. The module
|
||||||
|
// type is used to build AIDL files in a way that they can be used across
|
||||||
|
// independently updatable components of the system. If a device is shipped
|
||||||
|
// with such a backward incompatible change, it has a high risk of breaking
|
||||||
|
// later when a module using the interface is updated, e.g., Mainline modules.
|
||||||
|
|
||||||
|
package android.media.audio.common;
|
||||||
|
@Backing(type="int") @VintfStability
|
||||||
|
enum AudioFlag {
|
||||||
|
NONE = 0,
|
||||||
|
AUDIBILITY_ENFORCED = 1,
|
||||||
|
SCO = 4,
|
||||||
|
BEACON = 8,
|
||||||
|
HW_AV_SYNC = 16,
|
||||||
|
HW_HOTWORD = 32,
|
||||||
|
BYPASS_INTERRUPTION_POLICY = 64,
|
||||||
|
BYPASS_MUTE = 128,
|
||||||
|
LOW_LATENCY = 256,
|
||||||
|
DEEP_BUFFER = 512,
|
||||||
|
NO_MEDIA_PROJECTION = 1024,
|
||||||
|
MUTE_HAPTIC = 2048,
|
||||||
|
NO_SYSTEM_CAPTURE = 4096,
|
||||||
|
CAPTURE_PRIVATE = 8192,
|
||||||
|
CONTENT_SPATIALIZED = 16384,
|
||||||
|
NEVER_SPATIALIZE = 32768,
|
||||||
|
CALL_REDIRECTION = 65536,
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user