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

Commit 3cd05bc1 authored by Eric Laurent's avatar Eric Laurent Committed by Automerger Merge Worker
Browse files

Merge "audio: add Bluetooth LE Audio broadcast device" am: 26d7800e am: 29a988bf am: a2f59114

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1978307

Change-Id: I4c155442d6b62fbe48f03847c2722eb6d3d580a1
parents 14f9d483 a2f59114
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -19134,6 +19134,7 @@ package android.media {
    method public boolean isSink();
    method public boolean isSource();
    field public static final int TYPE_AUX_LINE = 19; // 0x13
    field public static final int TYPE_BLE_BROADCAST = 30; // 0x1e
    field public static final int TYPE_BLE_HEADSET = 26; // 0x1a
    field public static final int TYPE_BLE_SPEAKER = 27; // 0x1b
    field public static final int TYPE_BLUETOOTH_A2DP = 8; // 0x8
+12 −2
Original line number Diff line number Diff line
@@ -177,6 +177,11 @@ public final class AudioDeviceInfo {
     */
    public static final int TYPE_HDMI_EARC         = 29;

    /**
     * A device type describing a Bluetooth Low Energy (BLE) broadcast group.
     */
    public static final int TYPE_BLE_BROADCAST   = 30;

    /** @hide */
    @IntDef(flag = false, prefix = "TYPE", value = {
            TYPE_BUILTIN_EARPIECE,
@@ -207,7 +212,8 @@ public final class AudioDeviceInfo {
            TYPE_REMOTE_SUBMIX,
            TYPE_BLE_HEADSET,
            TYPE_BLE_SPEAKER,
            TYPE_ECHO_REFERENCE}
            TYPE_ECHO_REFERENCE,
            TYPE_BLE_BROADCAST}
    )
    @Retention(RetentionPolicy.SOURCE)
    public @interface AudioDeviceType {}
@@ -264,7 +270,8 @@ public final class AudioDeviceInfo {
            TYPE_HEARING_AID,
            TYPE_BUILTIN_SPEAKER_SAFE,
            TYPE_BLE_HEADSET,
            TYPE_BLE_SPEAKER}
            TYPE_BLE_SPEAKER,
            TYPE_BLE_BROADCAST}
    )
    @Retention(RetentionPolicy.SOURCE)
    public @interface AudioDeviceTypeOut {}
@@ -296,6 +303,7 @@ public final class AudioDeviceInfo {
            case TYPE_BUILTIN_SPEAKER_SAFE:
            case TYPE_BLE_HEADSET:
            case TYPE_BLE_SPEAKER:
            case TYPE_BLE_BROADCAST:
                return true;
            default:
                return false;
@@ -627,6 +635,7 @@ public final class AudioDeviceInfo {
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_REMOTE_SUBMIX, TYPE_REMOTE_SUBMIX);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_BLE_HEADSET, TYPE_BLE_HEADSET);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_BLE_SPEAKER, TYPE_BLE_SPEAKER);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_BLE_BROADCAST, TYPE_BLE_BROADCAST);

        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_IN_BUILTIN_MIC, TYPE_BUILTIN_MIC);
        INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_IN_BLUETOOTH_SCO_HEADSET, TYPE_BLUETOOTH_SCO);
@@ -684,6 +693,7 @@ public final class AudioDeviceInfo {
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_REMOTE_SUBMIX, AudioSystem.DEVICE_OUT_REMOTE_SUBMIX);
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_BLE_HEADSET, AudioSystem.DEVICE_OUT_BLE_HEADSET);
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_BLE_SPEAKER, AudioSystem.DEVICE_OUT_BLE_SPEAKER);
        EXT_TO_INT_DEVICE_MAPPING.put(TYPE_BLE_BROADCAST, AudioSystem.DEVICE_OUT_BLE_BROADCAST);

        // privileges mapping to input device
        EXT_TO_INT_INPUT_DEVICE_MAPPING = new SparseIntArray();
+2 −1
Original line number Diff line number Diff line
@@ -90,7 +90,8 @@ public class AudioDevicePort extends AudioPort {
     * {@link AudioManager#DEVICE_OUT_BLE_HEADSET}, {@link AudioManager#DEVICE_OUT_BLE_SPEAKER})
     * use the MAC address of the bluetooth device in the form "00:11:22:AA:BB:CC" as reported by
     * {@link BluetoothDevice#getAddress()}.
     * - Deivces that do not have an address will indicate an empty string "".
     * - Bluetooth LE broadcast group ({@link AudioManager#DEVICE_OUT_BLE_BROADCAST} use the group number.
     * - Devices that do not have an address will indicate an empty string "".
     */
    public String address() {
        return mAddress;
+4 −0
Original line number Diff line number Diff line
@@ -5416,6 +5416,10 @@ public class AudioManager {
     * The audio output device code for a BLE audio speaker.
     */
    public static final int DEVICE_OUT_BLE_SPEAKER = AudioSystem.DEVICE_OUT_BLE_SPEAKER;
    /** @hide
     * The audio output device code for a BLE audio brodcast group.
     */
    public static final int DEVICE_OUT_BLE_BROADCAST = AudioSystem.DEVICE_OUT_BLE_BROADCAST;
    /** @hide
     * This is not used as a returned value from {@link #getDevicesForStream}, but could be
     *  used in the future in a set method to select whatever default device is chosen by the
+7 −0
Original line number Diff line number Diff line
@@ -983,6 +983,8 @@ public class AudioSystem
    public static final int DEVICE_OUT_BLE_HEADSET = 0x20000000;
    /** @hide */
    public static final int DEVICE_OUT_BLE_SPEAKER = 0x20000001;
    /** @hide */
    public static final int DEVICE_OUT_BLE_BROADCAST = 0x20000002;

    /** @hide */
    public static final int DEVICE_OUT_DEFAULT = DEVICE_BIT_DEFAULT;
@@ -1043,6 +1045,7 @@ public class AudioSystem
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_ECHO_CANCELLER);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_BLE_HEADSET);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_BLE_SPEAKER);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_BLE_BROADCAST);
        DEVICE_OUT_ALL_SET.add(DEVICE_OUT_DEFAULT);

        DEVICE_OUT_ALL_A2DP_SET = new HashSet<>();
@@ -1073,6 +1076,7 @@ public class AudioSystem
        DEVICE_OUT_ALL_BLE_SET = new HashSet<>();
        DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_HEADSET);
        DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_SPEAKER);
        DEVICE_OUT_ALL_BLE_SET.add(DEVICE_OUT_BLE_BROADCAST);
    }

    // input devices
@@ -1256,6 +1260,7 @@ public class AudioSystem
    /** @hide */ public static final String DEVICE_OUT_ECHO_CANCELLER_NAME = "echo_canceller";
    /** @hide */ public static final String DEVICE_OUT_BLE_HEADSET_NAME = "ble_headset";
    /** @hide */ public static final String DEVICE_OUT_BLE_SPEAKER_NAME = "ble_speaker";
    /** @hide */ public static final String DEVICE_OUT_BLE_BROADCAST_NAME = "ble_broadcast";

    /** @hide */ public static final String DEVICE_IN_COMMUNICATION_NAME = "communication";
    /** @hide */ public static final String DEVICE_IN_AMBIENT_NAME = "ambient";
@@ -1355,6 +1360,8 @@ public class AudioSystem
            return DEVICE_OUT_BLE_HEADSET_NAME;
        case DEVICE_OUT_BLE_SPEAKER:
            return DEVICE_OUT_BLE_SPEAKER_NAME;
        case DEVICE_OUT_BLE_BROADCAST:
            return DEVICE_OUT_BLE_BROADCAST_NAME;
        case DEVICE_OUT_DEFAULT:
        default:
            return "0x" + Integer.toHexString(device);