Merge "Audio CAP: Address ANAPIC comments, Part 3." into main am: c2acf2ef95 am: b89f99d51a Original change: https://android-review.googlesource.com/c/platform/system/hardware/interfaces/+/3342620 Change-Id: I97bf928a8c40e897a76594ee82fb4c3203f41d3f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/media/Android.bp b/media/Android.bp index dbc1980..831a6f3 100644 --- a/media/Android.bp +++ b/media/Android.bp
@@ -68,7 +68,6 @@ "aidl/android/media/audio/common/AudioOffloadInfo.aidl", "aidl/android/media/audio/common/AudioOutputFlags.aidl", "aidl/android/media/audio/common/AudioPlaybackRate.aidl", - "aidl/android/media/audio/common/AudioPolicyForcedConfig.aidl", "aidl/android/media/audio/common/AudioPolicyForceUse.aidl", "aidl/android/media/audio/common/AudioPort.aidl", "aidl/android/media/audio/common/AudioPortConfig.aidl",
diff --git a/media/aidl/android/media/audio/common/AudioHalCapCriterionV2.aidl b/media/aidl/android/media/audio/common/AudioHalCapCriterionV2.aidl index 5e034c8..2416bca 100644 --- a/media/aidl/android/media/audio/common/AudioHalCapCriterionV2.aidl +++ b/media/aidl/android/media/audio/common/AudioHalCapCriterionV2.aidl
@@ -20,7 +20,6 @@ import android.media.audio.common.AudioDeviceDescription; import android.media.audio.common.AudioMode; import android.media.audio.common.AudioPolicyForceUse; -import android.media.audio.common.AudioPolicyForcedConfig; /** * AudioHalCapCriterion is a wrapper for a CriterionType and its default value. @@ -48,12 +47,13 @@ */ @VintfStability parcelable ForceConfigForUse { - /** Force usage addressed by this criterion. */ - AudioPolicyForceUse forceUse = AudioPolicyForceUse.MEDIA; /** List of supported value by this criterion. */ - AudioPolicyForcedConfig[] values; - /** Default configuration applied if none is provided. */ - AudioPolicyForcedConfig defaultValue = AudioPolicyForcedConfig.NONE; + AudioPolicyForceUse[] values; + /** + * Default configuration applied if none is provided. This is the default-initialized + * value of 'AudioPolicyForceUse' which is 'forMedia = NONE'. + */ + AudioPolicyForceUse defaultValue; /** Logic followed by this criterion, only one value at given time. */ LogicalDisjunction logic = LogicalDisjunction.EXCLUSIVE; }
diff --git a/media/aidl/android/media/audio/common/AudioPolicyForceUse.aidl b/media/aidl/android/media/audio/common/AudioPolicyForceUse.aidl index 017fb30..4a67851 100644 --- a/media/aidl/android/media/audio/common/AudioPolicyForceUse.aidl +++ b/media/aidl/android/media/audio/common/AudioPolicyForceUse.aidl
@@ -16,48 +16,92 @@ package android.media.audio.common; /** - * List of usages to be used the values from 'AudioPolicyForcedConfig' in order - * to force audio routing. + * "Force Use" specifies high-level routing policies which are used + * in order to override the usual routing behavior. * * {@hide} */ -@Backing(type="int") @SuppressWarnings(value={"redundant-name"}) @VintfStability -enum AudioPolicyForceUse { - /** - * Configures the audio device used for "communication" (telephony, VoIP) use cases. - */ - COMMUNICATION = 0, +union AudioPolicyForceUse { + @Backing(type="byte") + @VintfStability + enum CommunicationDeviceCategory { + NONE = 0, + SPEAKER, + BT_SCO, + BT_BLE, + WIRED_ACCESSORY, + } + @Backing(type="byte") + @VintfStability + enum MediaDeviceCategory { + NONE = 0, + SPEAKER, + HEADPHONES, + BT_A2DP, + ANALOG_DOCK, + DIGITAL_DOCK, + WIRED_ACCESSORY, + NO_BT_A2DP, + } + @Backing(type="byte") + @VintfStability + enum DockType { + NONE = 0, + BT_CAR_DOCK, + BT_DESK_DOCK, + ANALOG_DOCK, + DIGITAL_DOCK, + WIRED_ACCESSORY, + } + @Backing(type="byte") + @VintfStability + enum EncodedSurroundConfig { + UNSPECIFIED = 0, + NEVER, + ALWAYS, + MANUAL, + } + /** * Configures the audio device used for media playback. + * This is also the default value. */ - MEDIA = 1, + MediaDeviceCategory forMedia = MediaDeviceCategory.NONE; + /** + * Configures the audio device used for "communication" (telephony, VoIP) use cases. + * Note that 'BT_BLE' and 'WIRED_ACCESSORY' can not be used in this case. + */ + CommunicationDeviceCategory forCommunication = CommunicationDeviceCategory.NONE; /** * Configures the audio device used for recording. + * Note that 'SPEAKER' and 'BT_BLE' can not be used in this case. */ - RECORD = 2, + CommunicationDeviceCategory forRecord = CommunicationDeviceCategory.NONE; + /** + * Configures whether in muted audio mode ringing should also be sent to a BT device. + * Note that 'SPEAKER' and 'WIRED_ACCESSORY' can not be used in this case. + */ + CommunicationDeviceCategory forVibrateRinging = CommunicationDeviceCategory.NONE; /** * Specifies whether the phone is currently placed into a dock. The value of - * 'AudioPolicyForcedConfig' specifies the kind of the dock. + * specifies the kind of the dock. This field may also be used that sending + * of audio to the dock is overridden by another device. */ - DOCK = 3, + DockType dock = DockType.NONE; /** * Specifies whether enforcing of certain sounds is enabled, for example, * enforcing of the camera shutter sound. */ - SYSTEM = 4, + boolean systemSounds = false; /** * Specifies whether sending of system audio via HDMI is enabled. */ - HDMI_SYSTEM_AUDIO = 5, + boolean hdmiSystemAudio = false; /** * Configures whether support for encoded surround formats is enabled for * applications. */ - ENCODED_SURROUND = 6, - /** - * Configures whether in muted audio mode ringing should also be sent to a BT device. - */ - VIBRATE_RINGING = 7, + EncodedSurroundConfig encodedSurround = EncodedSurroundConfig.UNSPECIFIED; }
diff --git a/media/aidl/android/media/audio/common/AudioPolicyForcedConfig.aidl b/media/aidl/android/media/audio/common/AudioPolicyForcedConfig.aidl deleted file mode 100644 index a9e32bc..0000000 --- a/media/aidl/android/media/audio/common/AudioPolicyForcedConfig.aidl +++ /dev/null
@@ -1,76 +0,0 @@ -/* - * Copyright (C) 2024 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; - -/** - * List of forced configurations aka device categories to be used in addition to the force use - * in order to force the audio routing. This is the "destination" for 'AudioPolicyForceUse'. - * - * {@hide} - */ -@Backing(type="int") -@SuppressWarnings(value={"redundant-name"}) -@VintfStability -enum AudioPolicyForcedConfig { - /** - * The 'NONE' value can be used with all uses from 'AudioPolicyForceUse'. - */ - NONE = 0, - /** - * The following configurations are used with 'AudioPolicyForceUse.COMMUNICATION', - * '.MEDIA', and '.RECORD'. - * - * BT_SCO is also used with 'AudioPolicyForceUse.VIBRATE_RINGING' to specify that - * in addition to vibration the ringing should be played via the BT SCO device. - */ - SPEAKER = 1, - HEADPHONES = 2, - BT_SCO = 3, - BT_A2DP = 4, - WIRED_ACCESSORY = 5, - /** - * The '*_DOCK' values are for 'AudioPolicyForceUse.DOCK'. - */ - BT_CAR_DOCK = 6, - BT_DESK_DOCK = 7, - ANALOG_DOCK = 8, - DIGITAL_DOCK = 9, - /** - * BT A2DP sink is not preferred to the speaker or a wired headset. Used for - * 'AudioPolicyForceUse.MEDIA'. - */ - NO_BT_A2DP = 10, - /** - * Used with 'AudioPolicyForceUse.SYSTEM' to indicate that sound enforcement is enabled. - */ - SYSTEM_ENFORCED = 11, - /** - * Used with 'AudioPolicyForceUse.HDMI_SYSTEM_AUDIO' to indicate that sending - * of system audio to HDMI is enabled. - */ - HDMI_SYSTEM_AUDIO_ENFORCED = 12, - /** - * The '*_ENCODED_SURROUND' values are for 'AudioPolicyForceUse.ENCODED_SURROUND'. - */ - ENCODED_SURROUND_NEVER = 13, - ENCODED_SURROUND_ALWAYS = 14, - ENCODED_SURROUND_MANUAL = 15, - /** - * Used with 'AudioPolicyForceUse.VIBRATE_RINGING' to specify that in addition to - * vibration the ringing should be played via the BT BLE device. - */ - BT_BLE = 16, -}
diff --git a/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioHalCapCriterionV2.aidl b/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioHalCapCriterionV2.aidl index 1cb453a..b5ceee3 100644 --- a/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioHalCapCriterionV2.aidl +++ b/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioHalCapCriterionV2.aidl
@@ -48,9 +48,8 @@ } @VintfStability parcelable ForceConfigForUse { - android.media.audio.common.AudioPolicyForceUse forceUse = android.media.audio.common.AudioPolicyForceUse.MEDIA; - android.media.audio.common.AudioPolicyForcedConfig[] values; - android.media.audio.common.AudioPolicyForcedConfig defaultValue = android.media.audio.common.AudioPolicyForcedConfig.NONE; + android.media.audio.common.AudioPolicyForceUse[] values; + android.media.audio.common.AudioPolicyForceUse defaultValue; android.media.audio.common.AudioHalCapCriterionV2.LogicalDisjunction logic = android.media.audio.common.AudioHalCapCriterionV2.LogicalDisjunction.EXCLUSIVE; } @VintfStability
diff --git a/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioPolicyForceUse.aidl b/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioPolicyForceUse.aidl index 7e69f85..eb883e9 100644 --- a/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioPolicyForceUse.aidl +++ b/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioPolicyForceUse.aidl
@@ -33,14 +33,49 @@ package android.media.audio.common; /* @hide */ -@Backing(type="int") @SuppressWarnings(value={"redundant-name"}) @VintfStability -enum AudioPolicyForceUse { - COMMUNICATION = 0, - MEDIA = 1, - RECORD = 2, - DOCK = 3, - SYSTEM = 4, - HDMI_SYSTEM_AUDIO = 5, - ENCODED_SURROUND = 6, - VIBRATE_RINGING = 7, +@SuppressWarnings(value={"redundant-name"}) @VintfStability +union AudioPolicyForceUse { + android.media.audio.common.AudioPolicyForceUse.MediaDeviceCategory forMedia = android.media.audio.common.AudioPolicyForceUse.MediaDeviceCategory.NONE; + android.media.audio.common.AudioPolicyForceUse.CommunicationDeviceCategory forCommunication = android.media.audio.common.AudioPolicyForceUse.CommunicationDeviceCategory.NONE; + android.media.audio.common.AudioPolicyForceUse.CommunicationDeviceCategory forRecord = android.media.audio.common.AudioPolicyForceUse.CommunicationDeviceCategory.NONE; + android.media.audio.common.AudioPolicyForceUse.CommunicationDeviceCategory forVibrateRinging = android.media.audio.common.AudioPolicyForceUse.CommunicationDeviceCategory.NONE; + android.media.audio.common.AudioPolicyForceUse.DockType dock = android.media.audio.common.AudioPolicyForceUse.DockType.NONE; + boolean systemSounds = false; + boolean hdmiSystemAudio = false; + android.media.audio.common.AudioPolicyForceUse.EncodedSurroundConfig encodedSurround = android.media.audio.common.AudioPolicyForceUse.EncodedSurroundConfig.UNSPECIFIED; + @Backing(type="byte") @VintfStability + enum CommunicationDeviceCategory { + NONE = 0, + SPEAKER, + BT_SCO, + BT_BLE, + WIRED_ACCESSORY, + } + @Backing(type="byte") @VintfStability + enum MediaDeviceCategory { + NONE = 0, + SPEAKER, + HEADPHONES, + BT_A2DP, + ANALOG_DOCK, + DIGITAL_DOCK, + WIRED_ACCESSORY, + NO_BT_A2DP, + } + @Backing(type="byte") @VintfStability + enum DockType { + NONE = 0, + BT_CAR_DOCK, + BT_DESK_DOCK, + ANALOG_DOCK, + DIGITAL_DOCK, + WIRED_ACCESSORY, + } + @Backing(type="byte") @VintfStability + enum EncodedSurroundConfig { + UNSPECIFIED = 0, + NEVER, + ALWAYS, + MANUAL, + } }
diff --git a/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioPolicyForcedConfig.aidl b/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioPolicyForcedConfig.aidl deleted file mode 100644 index 5135bcd..0000000 --- a/media/aidl_api/android.media.audio.common.types/current/android/media/audio/common/AudioPolicyForcedConfig.aidl +++ /dev/null
@@ -1,55 +0,0 @@ -/* - * Copyright (C) 2024 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; -/* @hide */ -@Backing(type="int") @SuppressWarnings(value={"redundant-name"}) @VintfStability -enum AudioPolicyForcedConfig { - NONE = 0, - SPEAKER = 1, - HEADPHONES = 2, - BT_SCO = 3, - BT_A2DP = 4, - WIRED_ACCESSORY = 5, - BT_CAR_DOCK = 6, - BT_DESK_DOCK = 7, - ANALOG_DOCK = 8, - DIGITAL_DOCK = 9, - NO_BT_A2DP = 10, - SYSTEM_ENFORCED = 11, - HDMI_SYSTEM_AUDIO_ENFORCED = 12, - ENCODED_SURROUND_NEVER = 13, - ENCODED_SURROUND_ALWAYS = 14, - ENCODED_SURROUND_MANUAL = 15, - BT_BLE = 16, -}