Loading Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -380,6 +380,7 @@ filegroup { // etc. ":framework-javastream-protos", ":statslog-framework-java-gen", // FrameworkStatsLog.java ":audio_policy_configuration_V7_0", ], } Loading Loading @@ -1363,6 +1364,7 @@ filegroup { metalava_framework_docs_args = "--manifest $(location core/res/AndroidManifest.xml) " + "--ignore-classes-on-classpath " + "--hide-package com.android.server " + "--hide-package android.audio.policy.configuration.V7_0 " + "--error UnhiddenSystemApi " + "--hide RequiresPermission " + "--hide CallbackInterface " + Loading core/api/test-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -935,6 +935,11 @@ package android.location { package android.media { public final class AudioAttributes implements android.os.Parcelable { method @NonNull public static String usageToXsdString(int); method public static int xsdStringToUsage(@NonNull String); } public final class AudioFocusRequest { method @Nullable public android.media.AudioManager.OnAudioFocusChangeListener getOnAudioFocusChangeListener(); } Loading media/java/android/media/AudioAttributes.java +95 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.TestApi; import android.audio.policy.configuration.V7_0.AudioUsage; import android.compat.annotation.UnsupportedAppUsage; import android.media.audiopolicy.AudioProductStrategy; import android.os.Build; Loading @@ -34,7 +36,9 @@ import android.util.proto.ProtoOutputStream; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Objects; import java.util.Set; Loading Loading @@ -1281,6 +1285,97 @@ public final class AudioAttributes implements Parcelable { } } /** @hide **/ @TestApi @NonNull public static String usageToXsdString(@AttributeUsage int usage) { switch (usage) { case AudioAttributes.USAGE_UNKNOWN: return AudioUsage.AUDIO_USAGE_UNKNOWN.toString(); case AudioAttributes.USAGE_MEDIA: return AudioUsage.AUDIO_USAGE_MEDIA.toString(); case AudioAttributes.USAGE_VOICE_COMMUNICATION: return AudioUsage.AUDIO_USAGE_VOICE_COMMUNICATION.toString(); case AudioAttributes.USAGE_VOICE_COMMUNICATION_SIGNALLING: return AudioUsage.AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING.toString(); case AudioAttributes.USAGE_ALARM: return AudioUsage.AUDIO_USAGE_ALARM.toString(); case AudioAttributes.USAGE_NOTIFICATION: return AudioUsage.AUDIO_USAGE_NOTIFICATION.toString(); case AudioAttributes.USAGE_NOTIFICATION_RINGTONE: return AudioUsage.AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE.toString(); case AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY: return AudioUsage.AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY.toString(); case AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE: return AudioUsage.AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE.toString(); case AudioAttributes.USAGE_ASSISTANCE_SONIFICATION: return AudioUsage.AUDIO_USAGE_ASSISTANCE_SONIFICATION.toString(); case AudioAttributes.USAGE_GAME: return AudioUsage.AUDIO_USAGE_GAME.toString(); case AudioAttributes.USAGE_VIRTUAL_SOURCE: return AudioUsage.AUDIO_USAGE_VIRTUAL_SOURCE.toString(); case AudioAttributes.USAGE_ASSISTANT: return AudioUsage.AUDIO_USAGE_ASSISTANT.toString(); case AudioAttributes.USAGE_CALL_ASSISTANT: return AudioUsage.AUDIO_USAGE_CALL_ASSISTANT.toString(); case AudioAttributes.USAGE_EMERGENCY: return AudioUsage.AUDIO_USAGE_EMERGENCY.toString(); case AudioAttributes.USAGE_SAFETY: return AudioUsage.AUDIO_USAGE_SAFETY.toString(); case AudioAttributes.USAGE_VEHICLE_STATUS: return AudioUsage.AUDIO_USAGE_VEHICLE_STATUS.toString(); case AudioAttributes.USAGE_ANNOUNCEMENT: return AudioUsage.AUDIO_USAGE_ANNOUNCEMENT.toString(); default: Log.w(TAG, "Unknown usage value " + usage); return AudioUsage.AUDIO_USAGE_UNKNOWN.toString(); } } private static final Map<String, Integer> sXsdStringToUsage = new HashMap<>(); static { sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_UNKNOWN.toString(), USAGE_UNKNOWN); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_UNKNOWN.toString(), USAGE_UNKNOWN); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_MEDIA.toString(), USAGE_MEDIA); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_VOICE_COMMUNICATION.toString(), USAGE_VOICE_COMMUNICATION); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING.toString(), USAGE_VOICE_COMMUNICATION_SIGNALLING); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ALARM.toString(), USAGE_ALARM); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_NOTIFICATION.toString(), USAGE_NOTIFICATION); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE.toString(), USAGE_NOTIFICATION_RINGTONE); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY.toString(), USAGE_ASSISTANCE_ACCESSIBILITY); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE.toString(), USAGE_ASSISTANCE_NAVIGATION_GUIDANCE); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ASSISTANCE_SONIFICATION.toString(), USAGE_ASSISTANCE_SONIFICATION); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_GAME.toString(), USAGE_GAME); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_VIRTUAL_SOURCE.toString(), USAGE_VIRTUAL_SOURCE); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ASSISTANT.toString(), USAGE_ASSISTANT); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_CALL_ASSISTANT.toString(), USAGE_CALL_ASSISTANT); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_EMERGENCY.toString(), USAGE_EMERGENCY); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_SAFETY.toString(), USAGE_SAFETY); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_VEHICLE_STATUS.toString(), USAGE_VEHICLE_STATUS); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ANNOUNCEMENT.toString(), USAGE_ANNOUNCEMENT); } /** @hide **/ @TestApi public static @AttributeUsage int xsdStringToUsage(@NonNull String xsdUsage) { if (sXsdStringToUsage.containsKey(xsdUsage)) { return sXsdStringToUsage.get(xsdUsage); } else { Log.w(TAG, "Usage name not found in AudioUsage enum: " + xsdUsage); return USAGE_UNKNOWN; } } /** @hide */ public String contentTypeToString() { switch(mContentType) { Loading Loading
Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -380,6 +380,7 @@ filegroup { // etc. ":framework-javastream-protos", ":statslog-framework-java-gen", // FrameworkStatsLog.java ":audio_policy_configuration_V7_0", ], } Loading Loading @@ -1363,6 +1364,7 @@ filegroup { metalava_framework_docs_args = "--manifest $(location core/res/AndroidManifest.xml) " + "--ignore-classes-on-classpath " + "--hide-package com.android.server " + "--hide-package android.audio.policy.configuration.V7_0 " + "--error UnhiddenSystemApi " + "--hide RequiresPermission " + "--hide CallbackInterface " + Loading
core/api/test-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -935,6 +935,11 @@ package android.location { package android.media { public final class AudioAttributes implements android.os.Parcelable { method @NonNull public static String usageToXsdString(int); method public static int xsdStringToUsage(@NonNull String); } public final class AudioFocusRequest { method @Nullable public android.media.AudioManager.OnAudioFocusChangeListener getOnAudioFocusChangeListener(); } Loading
media/java/android/media/AudioAttributes.java +95 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.TestApi; import android.audio.policy.configuration.V7_0.AudioUsage; import android.compat.annotation.UnsupportedAppUsage; import android.media.audiopolicy.AudioProductStrategy; import android.os.Build; Loading @@ -34,7 +36,9 @@ import android.util.proto.ProtoOutputStream; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Objects; import java.util.Set; Loading Loading @@ -1281,6 +1285,97 @@ public final class AudioAttributes implements Parcelable { } } /** @hide **/ @TestApi @NonNull public static String usageToXsdString(@AttributeUsage int usage) { switch (usage) { case AudioAttributes.USAGE_UNKNOWN: return AudioUsage.AUDIO_USAGE_UNKNOWN.toString(); case AudioAttributes.USAGE_MEDIA: return AudioUsage.AUDIO_USAGE_MEDIA.toString(); case AudioAttributes.USAGE_VOICE_COMMUNICATION: return AudioUsage.AUDIO_USAGE_VOICE_COMMUNICATION.toString(); case AudioAttributes.USAGE_VOICE_COMMUNICATION_SIGNALLING: return AudioUsage.AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING.toString(); case AudioAttributes.USAGE_ALARM: return AudioUsage.AUDIO_USAGE_ALARM.toString(); case AudioAttributes.USAGE_NOTIFICATION: return AudioUsage.AUDIO_USAGE_NOTIFICATION.toString(); case AudioAttributes.USAGE_NOTIFICATION_RINGTONE: return AudioUsage.AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE.toString(); case AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY: return AudioUsage.AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY.toString(); case AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE: return AudioUsage.AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE.toString(); case AudioAttributes.USAGE_ASSISTANCE_SONIFICATION: return AudioUsage.AUDIO_USAGE_ASSISTANCE_SONIFICATION.toString(); case AudioAttributes.USAGE_GAME: return AudioUsage.AUDIO_USAGE_GAME.toString(); case AudioAttributes.USAGE_VIRTUAL_SOURCE: return AudioUsage.AUDIO_USAGE_VIRTUAL_SOURCE.toString(); case AudioAttributes.USAGE_ASSISTANT: return AudioUsage.AUDIO_USAGE_ASSISTANT.toString(); case AudioAttributes.USAGE_CALL_ASSISTANT: return AudioUsage.AUDIO_USAGE_CALL_ASSISTANT.toString(); case AudioAttributes.USAGE_EMERGENCY: return AudioUsage.AUDIO_USAGE_EMERGENCY.toString(); case AudioAttributes.USAGE_SAFETY: return AudioUsage.AUDIO_USAGE_SAFETY.toString(); case AudioAttributes.USAGE_VEHICLE_STATUS: return AudioUsage.AUDIO_USAGE_VEHICLE_STATUS.toString(); case AudioAttributes.USAGE_ANNOUNCEMENT: return AudioUsage.AUDIO_USAGE_ANNOUNCEMENT.toString(); default: Log.w(TAG, "Unknown usage value " + usage); return AudioUsage.AUDIO_USAGE_UNKNOWN.toString(); } } private static final Map<String, Integer> sXsdStringToUsage = new HashMap<>(); static { sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_UNKNOWN.toString(), USAGE_UNKNOWN); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_UNKNOWN.toString(), USAGE_UNKNOWN); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_MEDIA.toString(), USAGE_MEDIA); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_VOICE_COMMUNICATION.toString(), USAGE_VOICE_COMMUNICATION); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING.toString(), USAGE_VOICE_COMMUNICATION_SIGNALLING); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ALARM.toString(), USAGE_ALARM); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_NOTIFICATION.toString(), USAGE_NOTIFICATION); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_NOTIFICATION_TELEPHONY_RINGTONE.toString(), USAGE_NOTIFICATION_RINGTONE); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY.toString(), USAGE_ASSISTANCE_ACCESSIBILITY); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE.toString(), USAGE_ASSISTANCE_NAVIGATION_GUIDANCE); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ASSISTANCE_SONIFICATION.toString(), USAGE_ASSISTANCE_SONIFICATION); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_GAME.toString(), USAGE_GAME); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_VIRTUAL_SOURCE.toString(), USAGE_VIRTUAL_SOURCE); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ASSISTANT.toString(), USAGE_ASSISTANT); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_CALL_ASSISTANT.toString(), USAGE_CALL_ASSISTANT); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_EMERGENCY.toString(), USAGE_EMERGENCY); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_SAFETY.toString(), USAGE_SAFETY); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_VEHICLE_STATUS.toString(), USAGE_VEHICLE_STATUS); sXsdStringToUsage.put(AudioUsage.AUDIO_USAGE_ANNOUNCEMENT.toString(), USAGE_ANNOUNCEMENT); } /** @hide **/ @TestApi public static @AttributeUsage int xsdStringToUsage(@NonNull String xsdUsage) { if (sXsdStringToUsage.containsKey(xsdUsage)) { return sXsdStringToUsage.get(xsdUsage); } else { Log.w(TAG, "Usage name not found in AudioUsage enum: " + xsdUsage); return USAGE_UNKNOWN; } } /** @hide */ public String contentTypeToString() { switch(mContentType) { Loading