Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e81308ee authored by Andy Hung's avatar Andy Hung Committed by Android (Google) Code Review
Browse files

Merge "audio: add device constants for HDMI EARC" into sc-dev

parents 55c108fd f898eaea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -20235,6 +20235,7 @@ package android.media {
    field public static final int TYPE_FM_TUNER = 16; // 0x10
    field public static final int TYPE_HDMI = 9; // 0x9
    field public static final int TYPE_HDMI_ARC = 10; // 0xa
    field public static final int TYPE_HDMI_EARC = 29; // 0x1d
    field public static final int TYPE_HEARING_AID = 23; // 0x17
    field public static final int TYPE_IP = 20; // 0x14
    field public static final int TYPE_LINE_ANALOG = 5; // 0x5
+5 −0
Original line number Diff line number Diff line
@@ -1379,6 +1379,11 @@ package android.media {
    method public static int xsdStringToUsage(@NonNull String);
  }

  public final class AudioDeviceInfo {
    method public static void enforceValidAudioDeviceTypeIn(int);
    method public static void enforceValidAudioDeviceTypeOut(int);
  }

  public final class AudioFocusRequest {
    method @Nullable public android.media.AudioManager.OnAudioFocusChangeListener getOnAudioFocusChangeListener();
  }
+37 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.Manifest;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.annotation.TestApi;
import android.util.SparseIntArray;

import java.lang.annotation.Retention;
@@ -172,6 +173,11 @@ public final class AudioDeviceInfo {
    @RequiresPermission(Manifest.permission.CAPTURE_AUDIO_OUTPUT)
    public static final int TYPE_ECHO_REFERENCE   = 28;

    /**
     * A device type describing the Enhanced Audio Return Channel of an HDMI connection.
     */
    public static final int TYPE_HDMI_EARC         = 29;

    /** @hide */
    @IntDef(flag = false, prefix = "TYPE", value = {
            TYPE_BUILTIN_EARPIECE,
@@ -188,6 +194,7 @@ public final class AudioDeviceInfo {
            TYPE_TELEPHONY,
            TYPE_LINE_ANALOG,
            TYPE_HDMI_ARC,
            TYPE_HDMI_EARC,
            TYPE_LINE_DIGITAL,
            TYPE_FM,
            TYPE_AUX_LINE,
@@ -197,6 +204,8 @@ public final class AudioDeviceInfo {
            TYPE_BUILTIN_MIC,
            TYPE_FM_TUNER,
            TYPE_TV_TUNER,
            TYPE_BUILTIN_SPEAKER_SAFE,
            TYPE_REMOTE_SUBMIX,
            TYPE_BLE_HEADSET,
            TYPE_BLE_SPEAKER,
            TYPE_ECHO_REFERENCE}
@@ -222,7 +231,10 @@ public final class AudioDeviceInfo {
            TYPE_LINE_DIGITAL,
            TYPE_IP,
            TYPE_BUS,
            TYPE_REMOTE_SUBMIX,
            TYPE_BLE_HEADSET,
            TYPE_HDMI_ARC,
            TYPE_HDMI_EARC,
            TYPE_ECHO_REFERENCE}
    )
    @Retention(RetentionPolicy.SOURCE)
@@ -244,12 +256,14 @@ public final class AudioDeviceInfo {
            TYPE_TELEPHONY,
            TYPE_LINE_ANALOG,
            TYPE_HDMI_ARC,
            TYPE_HDMI_EARC,
            TYPE_LINE_DIGITAL,
            TYPE_FM,
            TYPE_AUX_LINE,
            TYPE_IP,
            TYPE_BUS,
            TYPE_HEARING_AID,
            TYPE_BUILTIN_SPEAKER_SAFE,
            TYPE_BLE_HEADSET,
            TYPE_BLE_SPEAKER}
    )
@@ -273,6 +287,7 @@ public final class AudioDeviceInfo {
            case TYPE_TELEPHONY:
            case TYPE_LINE_ANALOG:
            case TYPE_HDMI_ARC:
            case TYPE_HDMI_EARC:
            case TYPE_LINE_DIGITAL:
            case TYPE_FM:
            case TYPE_AUX_LINE:
@@ -309,6 +324,8 @@ public final class AudioDeviceInfo {
            case TYPE_BUS:
            case TYPE_REMOTE_SUBMIX:
            case TYPE_BLE_HEADSET:
            case TYPE_HDMI_ARC:
            case TYPE_HDMI_EARC:
            case TYPE_ECHO_REFERENCE:
                return true;
            default:
@@ -318,9 +335,15 @@ public final class AudioDeviceInfo {

    /**
     * @hide
     * Throws IAE on an invalid output device type
     * Enforces whether the audio device type is acceptable for output.
     *
     * A vendor implemented output type should modify isValidAudioDeviceTypeOut()
     * appropriately to accept the new type.  Do not remove already acceptable types.
     *
     * @throws IllegalArgumentException on an invalid output device type.
     * @param type
     */
    @TestApi
    public static void enforceValidAudioDeviceTypeOut(int type) {
        if (!isValidAudioDeviceTypeOut(type)) {
            throw new IllegalArgumentException("Illegal output device type " + type);
@@ -329,9 +352,15 @@ public final class AudioDeviceInfo {

    /**
     * @hide
     * Throws IAE on an invalid input device type
     * Enforces whether the audio device type is acceptable for input.
     *
     * A vendor implemented input type should modify isValidAudioDeviceTypeIn()
     * appropriately to accept the new type.  Do not remove already acceptable types.
     *
     * @throws IllegalArgumentException on an invalid input device type.
     * @param type
     */
    @TestApi
    public static void enforceValidAudioDeviceTypeIn(int type) {
        if (!isValidAudioDeviceTypeIn(type)) {
            throw new IllegalArgumentException("Illegal input device type " + type);
@@ -609,6 +638,7 @@ public final class AudioDeviceInfo {
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_TELEPHONY_TX, TYPE_TELEPHONY);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_LINE, TYPE_LINE_ANALOG);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_HDMI_ARC, TYPE_HDMI_ARC);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_HDMI_EARC, TYPE_HDMI_EARC);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_SPDIF, TYPE_LINE_DIGITAL);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_FM, TYPE_FM);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_AUX_LINE, TYPE_AUX_LINE);
@@ -641,6 +671,8 @@ public final class AudioDeviceInfo {
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_IN_BUS, TYPE_BUS);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_IN_REMOTE_SUBMIX, TYPE_REMOTE_SUBMIX);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_IN_BLE_HEADSET, TYPE_BLE_HEADSET);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_IN_HDMI_ARC, TYPE_HDMI_ARC);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_IN_HDMI_EARC, TYPE_HDMI_EARC);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_IN_ECHO_REFERENCE, TYPE_ECHO_REFERENCE);


@@ -656,6 +688,7 @@ public final class AudioDeviceInfo {
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_BLUETOOTH_A2DP, AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP);
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_HDMI, AudioSystem.DEVICE_OUT_HDMI);
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_HDMI_ARC, AudioSystem.DEVICE_OUT_HDMI_ARC);
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_HDMI_EARC, AudioSystem.DEVICE_OUT_HDMI_EARC);
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_USB_DEVICE, AudioSystem.DEVICE_OUT_USB_DEVICE);
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_USB_HEADSET, AudioSystem.DEVICE_OUT_USB_HEADSET);
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_USB_ACCESSORY, AudioSystem.DEVICE_OUT_USB_ACCESSORY);
@@ -700,6 +733,8 @@ public final class AudioDeviceInfo {
        EXT_TO_INT_INPUT_DEVICE_MAPPING.put(
                TYPE_REMOTE_SUBMIX, AudioSystem.DEVICE_IN_REMOTE_SUBMIX);
        EXT_TO_INT_INPUT_DEVICE_MAPPING.put(TYPE_BLE_HEADSET, AudioSystem.DEVICE_IN_BLE_HEADSET);
        EXT_TO_INT_INPUT_DEVICE_MAPPING.put(TYPE_HDMI_ARC, AudioSystem.DEVICE_IN_HDMI_ARC);
        EXT_TO_INT_INPUT_DEVICE_MAPPING.put(TYPE_HDMI_EARC, AudioSystem.DEVICE_IN_HDMI_EARC);
        EXT_TO_INT_INPUT_DEVICE_MAPPING.put(
                TYPE_ECHO_REFERENCE, AudioSystem.DEVICE_IN_ECHO_REFERENCE);

+11 −0
Original line number Diff line number Diff line
@@ -5188,6 +5188,10 @@ public class AudioManager {
     * The audio output device code for HDMI Audio Return Channel.
     */
    public static final int DEVICE_OUT_HDMI_ARC = AudioSystem.DEVICE_OUT_HDMI_ARC;
    /** @hide
     * The audio output device code for HDMI enhanced Audio Return Channel.
     */
    public static final int DEVICE_OUT_HDMI_EARC = AudioSystem.DEVICE_OUT_HDMI_EARC;
    /** @hide
     * The audio output device code for S/PDIF digital connection.
     */
@@ -5240,6 +5244,12 @@ public class AudioManager {
    public static final int DEVICE_IN_HDMI_ARC =
                                    AudioSystem.DEVICE_IN_HDMI_ARC;

    /** @hide
     * The audio input device code for HDMI EARC
     */
    public static final int DEVICE_IN_HDMI_EARC =
                                    AudioSystem.DEVICE_IN_HDMI_EARC;

    /** @hide
     * The audio input device code for telephony voice RX path
     */
@@ -5354,6 +5364,7 @@ public class AudioManager {
     *            {@link #DEVICE_OUT_TELEPHONY_TX}.
     *            {@link #DEVICE_OUT_LINE}.
     *            {@link #DEVICE_OUT_HDMI_ARC}.
     *            {@link #DEVICE_OUT_HDMI_EARC}.
     *            {@link #DEVICE_OUT_SPDIF}.
     *            {@link #DEVICE_OUT_FM}.
     *            {@link #DEVICE_OUT_DEFAULT} is not used here.
+13 −0
Original line number Diff line number Diff line
@@ -890,6 +890,8 @@ public class AudioSystem
    /** @hide */
    public static final int DEVICE_OUT_HDMI_ARC = 0x40000;
    /** @hide */
    public static final int DEVICE_OUT_HDMI_EARC = 0x40001;
    /** @hide */
    public static final int DEVICE_OUT_SPDIF = 0x80000;
    /** @hide */
    @UnsupportedAppUsage
@@ -961,6 +963,7 @@ public class AudioSystem
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_TELEPHONY_TX);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_LINE);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_HDMI_ARC);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_HDMI_EARC);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_SPDIF);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_FM);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_AUX_LINE);
@@ -993,6 +996,7 @@ public class AudioSystem
        DEVICE_OUT_ALL_HDMI_SYSTEM_AUDIO_SET = new HashSet<>();
        DEVICE_OUT_ALL_HDMI_SYSTEM_AUDIO_SET.add(DEVICE_OUT_AUX_LINE);
        DEVICE_OUT_ALL_HDMI_SYSTEM_AUDIO_SET.add(DEVICE_OUT_HDMI_ARC);
        DEVICE_OUT_ALL_HDMI_SYSTEM_AUDIO_SET.add(DEVICE_OUT_HDMI_EARC);
        DEVICE_OUT_ALL_HDMI_SYSTEM_AUDIO_SET.add(DEVICE_OUT_SPDIF);

        DEVICE_ALL_HDMI_SYSTEM_AUDIO_AND_SPEAKER_SET = new HashSet<>();
@@ -1074,6 +1078,8 @@ public class AudioSystem
    /** @hide */
    public static final int DEVICE_IN_HDMI_ARC = DEVICE_BIT_IN | 0x8000000;
    /** @hide */
    public static final int DEVICE_IN_HDMI_EARC = DEVICE_BIT_IN | 0x8000001;
    /** @hide */
    public static final int DEVICE_IN_ECHO_REFERENCE = DEVICE_BIT_IN | 0x10000000;
    /** @hide */
    public static final int DEVICE_IN_BLE_HEADSET = DEVICE_BIT_IN | 0x20000000;
@@ -1114,6 +1120,7 @@ public class AudioSystem
        DEVICE_IN_ALL_SET.add(DEVICE_IN_USB_HEADSET);
        DEVICE_IN_ALL_SET.add(DEVICE_IN_BLUETOOTH_BLE);
        DEVICE_IN_ALL_SET.add(DEVICE_IN_HDMI_ARC);
        DEVICE_IN_ALL_SET.add(DEVICE_IN_HDMI_EARC);
        DEVICE_IN_ALL_SET.add(DEVICE_IN_ECHO_REFERENCE);
        DEVICE_IN_ALL_SET.add(DEVICE_IN_BLE_HEADSET);
        DEVICE_IN_ALL_SET.add(DEVICE_IN_DEFAULT);
@@ -1169,6 +1176,7 @@ public class AudioSystem
    /** @hide */ public static final String DEVICE_OUT_TELEPHONY_TX_NAME = "telephony_tx";
    /** @hide */ public static final String DEVICE_OUT_LINE_NAME = "line";
    /** @hide */ public static final String DEVICE_OUT_HDMI_ARC_NAME = "hmdi_arc";
    /** @hide */ public static final String DEVICE_OUT_HDMI_EARC_NAME = "hmdi_earc";
    /** @hide */ public static final String DEVICE_OUT_SPDIF_NAME = "spdif";
    /** @hide */ public static final String DEVICE_OUT_FM_NAME = "fm_transmitter";
    /** @hide */ public static final String DEVICE_OUT_AUX_LINE_NAME = "aux_line";
@@ -1208,6 +1216,7 @@ public class AudioSystem
    /** @hide */ public static final String DEVICE_IN_BLUETOOTH_BLE_NAME = "bt_ble";
    /** @hide */ public static final String DEVICE_IN_ECHO_REFERENCE_NAME = "echo_reference";
    /** @hide */ public static final String DEVICE_IN_HDMI_ARC_NAME = "hdmi_arc";
    /** @hide */ public static final String DEVICE_IN_HDMI_EARC_NAME = "hdmi_earc";
    /** @hide */ public static final String DEVICE_IN_BLE_HEADSET_NAME = "ble_headset";

    /** @hide */
@@ -1253,6 +1262,8 @@ public class AudioSystem
            return DEVICE_OUT_LINE_NAME;
        case DEVICE_OUT_HDMI_ARC:
            return DEVICE_OUT_HDMI_ARC_NAME;
        case DEVICE_OUT_HDMI_EARC:
            return DEVICE_OUT_HDMI_EARC_NAME;
        case DEVICE_OUT_SPDIF:
            return DEVICE_OUT_SPDIF_NAME;
        case DEVICE_OUT_FM:
@@ -1339,6 +1350,8 @@ public class AudioSystem
            return DEVICE_IN_ECHO_REFERENCE_NAME;
        case DEVICE_IN_HDMI_ARC:
            return DEVICE_IN_HDMI_ARC_NAME;
        case DEVICE_IN_HDMI_EARC:
            return DEVICE_IN_HDMI_EARC_NAME;
        case DEVICE_IN_BLE_HEADSET:
            return DEVICE_IN_BLE_HEADSET_NAME;
        case DEVICE_IN_DEFAULT:
Loading