diff --git a/api/current.txt b/api/current.txt index 2a01cb1409fa0..f28f8206dfeaa 100644 --- a/api/current.txt +++ b/api/current.txt @@ -21905,6 +21905,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_HEARING_AID = 23; // 0x17 field public static final int TYPE_IP = 20; // 0x14 field public static final int TYPE_LINE_ANALOG = 5; // 0x5 field public static final int TYPE_LINE_DIGITAL = 6; // 0x6 diff --git a/media/java/android/media/AudioDeviceInfo.java b/media/java/android/media/AudioDeviceInfo.java index 3d879f5a46602..86dfc9c887236 100644 --- a/media/java/android/media/AudioDeviceInfo.java +++ b/media/java/android/media/AudioDeviceInfo.java @@ -123,6 +123,10 @@ public final class AudioDeviceInfo { * A device type describing a USB audio headset. */ public static final int TYPE_USB_HEADSET = 22; + /** + * A device type describing a Hearing Aid. + */ + public static final int TYPE_HEARING_AID = 23; /** @hide */ @IntDef(flag = false, prefix = "TYPE", value = { @@ -144,7 +148,8 @@ public final class AudioDeviceInfo { TYPE_FM, TYPE_AUX_LINE, TYPE_IP, - TYPE_BUS } + TYPE_BUS, + TYPE_HEARING_AID } ) @Retention(RetentionPolicy.SOURCE) public @interface AudioDeviceTypeOut {} @@ -171,6 +176,7 @@ public final class AudioDeviceInfo { case TYPE_AUX_LINE: case TYPE_IP: case TYPE_BUS: + case TYPE_HEARING_AID: return true; default: return false; @@ -367,6 +373,7 @@ public final class AudioDeviceInfo { INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_AUX_LINE, TYPE_AUX_LINE); INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_IP, TYPE_IP); INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_BUS, TYPE_BUS); + INT_TO_EXT_DEVICE_MAPPING.put(AudioSystem.DEVICE_OUT_HEARING_AID, TYPE_HEARING_AID); 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); @@ -415,6 +422,7 @@ public final class AudioDeviceInfo { EXT_TO_INT_DEVICE_MAPPING.put(TYPE_AUX_LINE, AudioSystem.DEVICE_OUT_AUX_LINE); EXT_TO_INT_DEVICE_MAPPING.put(TYPE_IP, AudioSystem.DEVICE_OUT_IP); EXT_TO_INT_DEVICE_MAPPING.put(TYPE_BUS, AudioSystem.DEVICE_OUT_BUS); + EXT_TO_INT_DEVICE_MAPPING.put(TYPE_HEARING_AID, AudioSystem.DEVICE_OUT_HEARING_AID); } } diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java index be9fcb8fae835..3885f90176559 100644 --- a/media/java/android/media/AudioSystem.java +++ b/media/java/android/media/AudioSystem.java @@ -401,6 +401,7 @@ public class AudioSystem public static final int DEVICE_OUT_BUS = 0x1000000; public static final int DEVICE_OUT_PROXY = 0x2000000; public static final int DEVICE_OUT_USB_HEADSET = 0x4000000; + public static final int DEVICE_OUT_HEARING_AID = 0x8000000; public static final int DEVICE_OUT_DEFAULT = DEVICE_BIT_DEFAULT; @@ -431,6 +432,7 @@ public class AudioSystem DEVICE_OUT_BUS | DEVICE_OUT_PROXY | DEVICE_OUT_USB_HEADSET | + DEVICE_OUT_HEARING_AID | DEVICE_OUT_DEFAULT); public static final int DEVICE_OUT_ALL_A2DP = (DEVICE_OUT_BLUETOOTH_A2DP | DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES | @@ -546,6 +548,7 @@ public class AudioSystem public static final String DEVICE_OUT_BUS_NAME = "bus"; public static final String DEVICE_OUT_PROXY_NAME = "proxy"; public static final String DEVICE_OUT_USB_HEADSET_NAME = "usb_headset"; + public static final String DEVICE_OUT_HEARING_AID_NAME = "hearing_aid_out"; public static final String DEVICE_IN_COMMUNICATION_NAME = "communication"; public static final String DEVICE_IN_AMBIENT_NAME = "ambient"; @@ -628,6 +631,8 @@ public class AudioSystem return DEVICE_OUT_PROXY_NAME; case DEVICE_OUT_USB_HEADSET: return DEVICE_OUT_USB_HEADSET_NAME; + case DEVICE_OUT_HEARING_AID: + return DEVICE_OUT_HEARING_AID_NAME; case DEVICE_OUT_DEFAULT: default: return Integer.toString(device);