From 1e73cdc45c32872f14810a5f8a7762c7dbe4fdcd Mon Sep 17 00:00:00 2001 From: Jakub Pawlowski Date: Wed, 21 Feb 2018 11:53:14 -0800 Subject: [PATCH] Add Hearing Aid output device This output is used to send audio to Hearring Aid device. Bug: 69623109 Test: mm Change-Id: I6ffdb0a404efb645592624612c7ebc187fb933a6 --- api/current.txt | 1 + media/java/android/media/AudioDeviceInfo.java | 10 +++++++++- media/java/android/media/AudioSystem.java | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) 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);