summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapi/system-current.txt16
-rw-r--r--core/jni/Android.bp2
-rw-r--r--core/jni/AndroidRuntime.cpp270
-rw-r--r--core/jni/android_media_AudioDevice.cpp (renamed from core/jni/android_media_AudioDeviceAddress.cpp)30
-rw-r--r--core/jni/android_media_AudioDevice.h (renamed from core/jni/android_media_AudioDeviceAddress.h)12
-rw-r--r--core/jni/android_media_AudioSystem.cpp228
-rw-r--r--media/java/android/media/AudioDevice.aidl (renamed from media/java/android/media/AudioDeviceAddress.aidl)2
-rw-r--r--media/java/android/media/AudioDevice.java (renamed from media/java/android/media/AudioDeviceAddress.java)34
-rw-r--r--media/java/android/media/AudioManager.java10
-rw-r--r--media/java/android/media/AudioSystem.java16
-rw-r--r--media/java/android/media/IAudioService.aidl8
-rw-r--r--media/java/android/media/audiofx/AudioEffect.java6
-rw-r--r--services/core/java/com/android/server/audio/AudioDeviceBroker.java8
-rw-r--r--services/core/java/com/android/server/audio/AudioDeviceInventory.java8
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java12
-rw-r--r--services/core/java/com/android/server/audio/AudioSystemAdapter.java8
16 files changed, 348 insertions, 322 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index 6b3067a821b1..df7198aa2028 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -4216,15 +4216,15 @@ package android.media {
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public android.media.AudioAttributes.Builder setSystemUsage(int);
}
- public final class AudioDeviceAddress implements android.os.Parcelable {
- ctor public AudioDeviceAddress(@NonNull android.media.AudioDeviceInfo);
- ctor public AudioDeviceAddress(int, int, @NonNull String);
+ public final class AudioDevice implements android.os.Parcelable {
+ ctor public AudioDevice(@NonNull android.media.AudioDeviceInfo);
+ ctor public AudioDevice(int, int, @NonNull String);
method public int describeContents();
method @NonNull public String getAddress();
method public int getRole();
method public int getType();
method public void writeToParcel(@NonNull android.os.Parcel, int);
- field @NonNull public static final android.os.Parcelable.Creator<android.media.AudioDeviceAddress> CREATOR;
+ field @NonNull public static final android.os.Parcelable.Creator<android.media.AudioDevice> CREATOR;
field public static final int ROLE_INPUT = 1; // 0x1
field public static final int ROLE_OUTPUT = 2; // 0x2
}
@@ -4261,11 +4261,11 @@ package android.media {
method @IntRange(from=0) public int getAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo);
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static java.util.List<android.media.audiopolicy.AudioProductStrategy> getAudioProductStrategies();
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static java.util.List<android.media.audiopolicy.AudioVolumeGroup> getAudioVolumeGroups();
- method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public java.util.List<android.media.AudioDeviceAddress> getDevicesForAttributes(@NonNull android.media.AudioAttributes);
+ method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public java.util.List<android.media.AudioDevice> getDevicesForAttributes(@NonNull android.media.AudioAttributes);
method @IntRange(from=0) public int getMaxAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo);
method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getMaxVolumeIndexForAttributes(@NonNull android.media.AudioAttributes);
method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getMinVolumeIndexForAttributes(@NonNull android.media.AudioAttributes);
- method @Nullable @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public android.media.AudioDeviceAddress getPreferredDeviceForStrategy(@NonNull android.media.audiopolicy.AudioProductStrategy);
+ method @Nullable @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public android.media.AudioDevice getPreferredDeviceForStrategy(@NonNull android.media.audiopolicy.AudioProductStrategy);
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int[] getSupportedSystemUsages();
method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int getVolumeIndexForAttributes(@NonNull android.media.AudioAttributes);
method public boolean isAudioServerRunning();
@@ -4279,7 +4279,7 @@ package android.media {
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean setAdditionalOutputDeviceDelay(@NonNull android.media.AudioDeviceInfo, @IntRange(from=0) int);
method public void setAudioServerStateCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.AudioManager.AudioServerStateCallback);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setFocusRequestResult(@NonNull android.media.AudioFocusInfo, int, @NonNull android.media.audiopolicy.AudioPolicy);
- method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean setPreferredDeviceForStrategy(@NonNull android.media.audiopolicy.AudioProductStrategy, @NonNull android.media.AudioDeviceAddress);
+ method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean setPreferredDeviceForStrategy(@NonNull android.media.audiopolicy.AudioProductStrategy, @NonNull android.media.AudioDevice);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setSupportedSystemUsages(@NonNull int[]);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void setVolumeIndexForAttributes(@NonNull android.media.AudioAttributes, int, int);
method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public void unregisterAudioPolicy(@NonNull android.media.audiopolicy.AudioPolicy);
@@ -4375,7 +4375,7 @@ package android.media {
package android.media.audiofx {
public class AudioEffect {
- ctor @RequiresPermission("android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS") public AudioEffect(@NonNull java.util.UUID, @NonNull android.media.AudioDeviceAddress);
+ ctor @RequiresPermission("android.permission.MODIFY_DEFAULT_AUDIO_EFFECTS") public AudioEffect(@NonNull java.util.UUID, @NonNull android.media.AudioDevice);
}
}
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index 35eb0fc986d7..3d0926d61789 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -153,7 +153,7 @@ cc_library_shared {
"android_util_MemoryIntArray.cpp",
"android_util_Process.cpp",
"android_util_jar_StrictJarFile.cpp",
- "android_media_AudioDeviceAddress.cpp",
+ "android_media_AudioDevice.cpp",
"android_media_AudioEffectDescriptor.cpp",
"android_media_AudioRecord.cpp",
"android_media_AudioSystem.cpp",
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 657336e6910a..617064fe31fd 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -86,7 +86,7 @@ extern int register_android_hardware_UsbDeviceConnection(JNIEnv *env);
extern int register_android_hardware_UsbRequest(JNIEnv *env);
extern int register_android_hardware_location_ActivityRecognitionHardware(JNIEnv* env);
-extern int register_android_media_AudioDeviceAddress(JNIEnv *env);
+extern int register_android_media_AudioDevice(JNIEnv* env);
extern int register_android_media_AudioEffectDescriptor(JNIEnv *env);
extern int register_android_media_AudioRecord(JNIEnv *env);
extern int register_android_media_AudioSystem(JNIEnv *env);
@@ -1424,140 +1424,140 @@ static int register_jni_procs(const RegJNIRec array[], size_t count, JNIEnv* env
}
static const RegJNIRec gRegJNI[] = {
- REG_JNI(register_com_android_internal_os_RuntimeInit),
- REG_JNI(register_com_android_internal_os_ZygoteInit_nativeZygoteInit),
- REG_JNI(register_android_os_SystemClock),
- REG_JNI(register_android_util_EventLog),
- REG_JNI(register_android_util_Log),
- REG_JNI(register_android_util_MemoryIntArray),
- REG_JNI(register_android_util_StatsLog),
- REG_JNI(register_android_util_StatsLogInternal),
- REG_JNI(register_android_app_admin_SecurityLog),
- REG_JNI(register_android_content_AssetManager),
- REG_JNI(register_android_content_StringBlock),
- REG_JNI(register_android_content_XmlBlock),
- REG_JNI(register_android_content_res_ApkAssets),
- REG_JNI(register_android_text_AndroidCharacter),
- REG_JNI(register_android_text_Hyphenator),
- REG_JNI(register_android_view_InputDevice),
- REG_JNI(register_android_view_KeyCharacterMap),
- REG_JNI(register_android_os_Process),
- REG_JNI(register_android_os_SystemProperties),
- REG_JNI(register_android_os_Binder),
- REG_JNI(register_android_os_Parcel),
- REG_JNI(register_android_os_HidlMemory),
- REG_JNI(register_android_os_HidlSupport),
- REG_JNI(register_android_os_HwBinder),
- REG_JNI(register_android_os_HwBlob),
- REG_JNI(register_android_os_HwParcel),
- REG_JNI(register_android_os_HwRemoteBinder),
- REG_JNI(register_android_os_NativeHandle),
- REG_JNI(register_android_os_storage_StorageManager),
- REG_JNI(register_android_os_VintfObject),
- REG_JNI(register_android_os_VintfRuntimeInfo),
- REG_JNI(register_android_service_DataLoaderService),
- REG_JNI(register_android_view_DisplayEventReceiver),
- REG_JNI(register_android_view_RenderNodeAnimator),
- REG_JNI(register_android_view_InputApplicationHandle),
- REG_JNI(register_android_view_InputWindowHandle),
- REG_JNI(register_android_view_Surface),
- REG_JNI(register_android_view_SurfaceControl),
- REG_JNI(register_android_view_SurfaceSession),
- REG_JNI(register_android_view_CompositionSamplingListener),
- REG_JNI(register_android_view_TextureView),
- REG_JNI(register_com_android_internal_view_animation_NativeInterpolatorFactoryHelper),
- REG_JNI(register_com_google_android_gles_jni_EGLImpl),
- REG_JNI(register_com_google_android_gles_jni_GLImpl),
- REG_JNI(register_android_opengl_jni_EGL14),
- REG_JNI(register_android_opengl_jni_EGL15),
- REG_JNI(register_android_opengl_jni_EGLExt),
- REG_JNI(register_android_opengl_jni_GLES10),
- REG_JNI(register_android_opengl_jni_GLES10Ext),
- REG_JNI(register_android_opengl_jni_GLES11),
- REG_JNI(register_android_opengl_jni_GLES11Ext),
- REG_JNI(register_android_opengl_jni_GLES20),
- REG_JNI(register_android_opengl_jni_GLES30),
- REG_JNI(register_android_opengl_jni_GLES31),
- REG_JNI(register_android_opengl_jni_GLES31Ext),
- REG_JNI(register_android_opengl_jni_GLES32),
- REG_JNI(register_android_graphics_classes),
- REG_JNI(register_android_graphics_BLASTBufferQueue),
- REG_JNI(register_android_graphics_GraphicBuffer),
- REG_JNI(register_android_database_CursorWindow),
- REG_JNI(register_android_database_SQLiteConnection),
- REG_JNI(register_android_database_SQLiteGlobal),
- REG_JNI(register_android_database_SQLiteDebug),
- REG_JNI(register_android_os_Debug),
- REG_JNI(register_android_os_FileObserver),
- REG_JNI(register_android_os_GraphicsEnvironment),
- REG_JNI(register_android_os_MessageQueue),
- REG_JNI(register_android_os_SELinux),
- REG_JNI(register_android_os_Trace),
- REG_JNI(register_android_os_UEventObserver),
- REG_JNI(register_android_net_LocalSocketImpl),
- REG_JNI(register_android_net_NetworkUtils),
- REG_JNI(register_android_os_MemoryFile),
- REG_JNI(register_android_os_SharedMemory),
- REG_JNI(register_android_os_incremental_IncrementalManager),
- REG_JNI(register_com_android_internal_os_ClassLoaderFactory),
- REG_JNI(register_com_android_internal_os_Zygote),
- REG_JNI(register_com_android_internal_os_ZygoteInit),
- REG_JNI(register_com_android_internal_util_VirtualRefBasePtr),
- REG_JNI(register_android_hardware_Camera),
- REG_JNI(register_android_hardware_camera2_CameraMetadata),
- REG_JNI(register_android_hardware_camera2_legacy_LegacyCameraDevice),
- REG_JNI(register_android_hardware_camera2_legacy_PerfMeasurement),
- REG_JNI(register_android_hardware_camera2_DngCreator),
- REG_JNI(register_android_hardware_HardwareBuffer),
- REG_JNI(register_android_hardware_SensorManager),
- REG_JNI(register_android_hardware_SerialPort),
- REG_JNI(register_android_hardware_UsbDevice),
- REG_JNI(register_android_hardware_UsbDeviceConnection),
- REG_JNI(register_android_hardware_UsbRequest),
- REG_JNI(register_android_hardware_location_ActivityRecognitionHardware),
- REG_JNI(register_android_media_AudioDeviceAddress),
- REG_JNI(register_android_media_AudioEffectDescriptor),
- REG_JNI(register_android_media_AudioSystem),
- REG_JNI(register_android_media_AudioRecord),
- REG_JNI(register_android_media_AudioTrack),
- REG_JNI(register_android_media_AudioAttributes),
- REG_JNI(register_android_media_AudioProductStrategies),
- REG_JNI(register_android_media_AudioVolumeGroups),
- REG_JNI(register_android_media_AudioVolumeGroupChangeHandler),
- REG_JNI(register_android_media_MediaMetrics),
- REG_JNI(register_android_media_MicrophoneInfo),
- REG_JNI(register_android_media_RemoteDisplay),
- REG_JNI(register_android_media_ToneGenerator),
- REG_JNI(register_android_media_midi),
-
- REG_JNI(register_android_opengl_classes),
- REG_JNI(register_android_server_NetworkManagementSocketTagger),
- REG_JNI(register_android_ddm_DdmHandleNativeHeap),
- REG_JNI(register_android_backup_BackupDataInput),
- REG_JNI(register_android_backup_BackupDataOutput),
- REG_JNI(register_android_backup_FileBackupHelperBase),
- REG_JNI(register_android_backup_BackupHelperDispatcher),
- REG_JNI(register_android_app_backup_FullBackup),
- REG_JNI(register_android_app_Activity),
- REG_JNI(register_android_app_ActivityThread),
- REG_JNI(register_android_app_NativeActivity),
- REG_JNI(register_android_util_jar_StrictJarFile),
- REG_JNI(register_android_view_InputChannel),
- REG_JNI(register_android_view_InputEventReceiver),
- REG_JNI(register_android_view_InputEventSender),
- REG_JNI(register_android_view_InputQueue),
- REG_JNI(register_android_view_KeyEvent),
- REG_JNI(register_android_view_MotionEvent),
- REG_JNI(register_android_view_PointerIcon),
- REG_JNI(register_android_view_VelocityTracker),
-
- REG_JNI(register_android_content_res_ObbScanner),
- REG_JNI(register_android_content_res_Configuration),
-
- REG_JNI(register_android_animation_PropertyValuesHolder),
- REG_JNI(register_android_security_Scrypt),
- REG_JNI(register_com_android_internal_content_NativeLibraryHelper),
- REG_JNI(register_com_android_internal_os_FuseAppLoop),
+ REG_JNI(register_com_android_internal_os_RuntimeInit),
+ REG_JNI(register_com_android_internal_os_ZygoteInit_nativeZygoteInit),
+ REG_JNI(register_android_os_SystemClock),
+ REG_JNI(register_android_util_EventLog),
+ REG_JNI(register_android_util_Log),
+ REG_JNI(register_android_util_MemoryIntArray),
+ REG_JNI(register_android_util_StatsLog),
+ REG_JNI(register_android_util_StatsLogInternal),
+ REG_JNI(register_android_app_admin_SecurityLog),
+ REG_JNI(register_android_content_AssetManager),
+ REG_JNI(register_android_content_StringBlock),
+ REG_JNI(register_android_content_XmlBlock),
+ REG_JNI(register_android_content_res_ApkAssets),
+ REG_JNI(register_android_text_AndroidCharacter),
+ REG_JNI(register_android_text_Hyphenator),
+ REG_JNI(register_android_view_InputDevice),
+ REG_JNI(register_android_view_KeyCharacterMap),
+ REG_JNI(register_android_os_Process),
+ REG_JNI(register_android_os_SystemProperties),
+ REG_JNI(register_android_os_Binder),
+ REG_JNI(register_android_os_Parcel),
+ REG_JNI(register_android_os_HidlMemory),
+ REG_JNI(register_android_os_HidlSupport),
+ REG_JNI(register_android_os_HwBinder),
+ REG_JNI(register_android_os_HwBlob),
+ REG_JNI(register_android_os_HwParcel),
+ REG_JNI(register_android_os_HwRemoteBinder),
+ REG_JNI(register_android_os_NativeHandle),
+ REG_JNI(register_android_os_storage_StorageManager),
+ REG_JNI(register_android_os_VintfObject),
+ REG_JNI(register_android_os_VintfRuntimeInfo),
+ REG_JNI(register_android_service_DataLoaderService),
+ REG_JNI(register_android_view_DisplayEventReceiver),
+ REG_JNI(register_android_view_RenderNodeAnimator),
+ REG_JNI(register_android_view_InputApplicationHandle),
+ REG_JNI(register_android_view_InputWindowHandle),
+ REG_JNI(register_android_view_Surface),
+ REG_JNI(register_android_view_SurfaceControl),
+ REG_JNI(register_android_view_SurfaceSession),
+ REG_JNI(register_android_view_CompositionSamplingListener),
+ REG_JNI(register_android_view_TextureView),
+ REG_JNI(register_com_android_internal_view_animation_NativeInterpolatorFactoryHelper),
+ REG_JNI(register_com_google_android_gles_jni_EGLImpl),
+ REG_JNI(register_com_google_android_gles_jni_GLImpl),
+ REG_JNI(register_android_opengl_jni_EGL14),
+ REG_JNI(register_android_opengl_jni_EGL15),
+ REG_JNI(register_android_opengl_jni_EGLExt),
+ REG_JNI(register_android_opengl_jni_GLES10),
+ REG_JNI(register_android_opengl_jni_GLES10Ext),
+ REG_JNI(register_android_opengl_jni_GLES11),
+ REG_JNI(register_android_opengl_jni_GLES11Ext),
+ REG_JNI(register_android_opengl_jni_GLES20),
+ REG_JNI(register_android_opengl_jni_GLES30),
+ REG_JNI(register_android_opengl_jni_GLES31),
+ REG_JNI(register_android_opengl_jni_GLES31Ext),
+ REG_JNI(register_android_opengl_jni_GLES32),
+ REG_JNI(register_android_graphics_classes),
+ REG_JNI(register_android_graphics_BLASTBufferQueue),
+ REG_JNI(register_android_graphics_GraphicBuffer),
+ REG_JNI(register_android_database_CursorWindow),
+ REG_JNI(register_android_database_SQLiteConnection),
+ REG_JNI(register_android_database_SQLiteGlobal),
+ REG_JNI(register_android_database_SQLiteDebug),
+ REG_JNI(register_android_os_Debug),
+ REG_JNI(register_android_os_FileObserver),
+ REG_JNI(register_android_os_GraphicsEnvironment),
+ REG_JNI(register_android_os_MessageQueue),
+ REG_JNI(register_android_os_SELinux),
+ REG_JNI(register_android_os_Trace),
+ REG_JNI(register_android_os_UEventObserver),
+ REG_JNI(register_android_net_LocalSocketImpl),
+ REG_JNI(register_android_net_NetworkUtils),
+ REG_JNI(register_android_os_MemoryFile),
+ REG_JNI(register_android_os_SharedMemory),
+ REG_JNI(register_android_os_incremental_IncrementalManager),
+ REG_JNI(register_com_android_internal_os_ClassLoaderFactory),
+ REG_JNI(register_com_android_internal_os_Zygote),
+ REG_JNI(register_com_android_internal_os_ZygoteInit),
+ REG_JNI(register_com_android_internal_util_VirtualRefBasePtr),
+ REG_JNI(register_android_hardware_Camera),
+ REG_JNI(register_android_hardware_camera2_CameraMetadata),
+ REG_JNI(register_android_hardware_camera2_legacy_LegacyCameraDevice),
+ REG_JNI(register_android_hardware_camera2_legacy_PerfMeasurement),
+ REG_JNI(register_android_hardware_camera2_DngCreator),
+ REG_JNI(register_android_hardware_HardwareBuffer),
+ REG_JNI(register_android_hardware_SensorManager),
+ REG_JNI(register_android_hardware_SerialPort),
+ REG_JNI(register_android_hardware_UsbDevice),
+ REG_JNI(register_android_hardware_UsbDeviceConnection),
+ REG_JNI(register_android_hardware_UsbRequest),
+ REG_JNI(register_android_hardware_location_ActivityRecognitionHardware),
+ REG_JNI(register_android_media_AudioDevice),
+ REG_JNI(register_android_media_AudioEffectDescriptor),
+ REG_JNI(register_android_media_AudioSystem),
+ REG_JNI(register_android_media_AudioRecord),
+ REG_JNI(register_android_media_AudioTrack),
+ REG_JNI(register_android_media_AudioAttributes),
+ REG_JNI(register_android_media_AudioProductStrategies),
+ REG_JNI(register_android_media_AudioVolumeGroups),
+ REG_JNI(register_android_media_AudioVolumeGroupChangeHandler),
+ REG_JNI(register_android_media_MediaMetrics),
+ REG_JNI(register_android_media_MicrophoneInfo),
+ REG_JNI(register_android_media_RemoteDisplay),
+ REG_JNI(register_android_media_ToneGenerator),
+ REG_JNI(register_android_media_midi),
+
+ REG_JNI(register_android_opengl_classes),
+ REG_JNI(register_android_server_NetworkManagementSocketTagger),
+ REG_JNI(register_android_ddm_DdmHandleNativeHeap),
+ REG_JNI(register_android_backup_BackupDataInput),
+ REG_JNI(register_android_backup_BackupDataOutput),
+ REG_JNI(register_android_backup_FileBackupHelperBase),
+ REG_JNI(register_android_backup_BackupHelperDispatcher),
+ REG_JNI(register_android_app_backup_FullBackup),
+ REG_JNI(register_android_app_Activity),
+ REG_JNI(register_android_app_ActivityThread),
+ REG_JNI(register_android_app_NativeActivity),
+ REG_JNI(register_android_util_jar_StrictJarFile),
+ REG_JNI(register_android_view_InputChannel),
+ REG_JNI(register_android_view_InputEventReceiver),
+ REG_JNI(register_android_view_InputEventSender),
+ REG_JNI(register_android_view_InputQueue),
+ REG_JNI(register_android_view_KeyEvent),
+ REG_JNI(register_android_view_MotionEvent),
+ REG_JNI(register_android_view_PointerIcon),
+ REG_JNI(register_android_view_VelocityTracker),
+
+ REG_JNI(register_android_content_res_ObbScanner),
+ REG_JNI(register_android_content_res_Configuration),
+
+ REG_JNI(register_android_animation_PropertyValuesHolder),
+ REG_JNI(register_android_security_Scrypt),
+ REG_JNI(register_com_android_internal_content_NativeLibraryHelper),
+ REG_JNI(register_com_android_internal_os_FuseAppLoop),
};
/*
diff --git a/core/jni/android_media_AudioDeviceAddress.cpp b/core/jni/android_media_AudioDevice.cpp
index 5f39f7efb6a2..f6a0e4be1066 100644
--- a/core/jni/android_media_AudioDeviceAddress.cpp
+++ b/core/jni/android_media_AudioDevice.cpp
@@ -14,40 +14,38 @@
* limitations under the License.
*/
-#include "core_jni_helpers.h"
-#include "android_media_AudioDeviceAddress.h"
+#include "android_media_AudioDevice.h"
#include "android_media_AudioErrors.h"
+#include "core_jni_helpers.h"
#include <media/AudioDeviceTypeAddr.h>
using namespace android;
-static jclass gAudioDeviceAddressClass;
-static jmethodID gAudioDeviceAddressCstor;
+static jclass gAudioDeviceClass;
+static jmethodID gAudioDeviceCstor;
namespace android {
-jint createAudioDeviceAddressFromNative(
- JNIEnv *env, jobject *jAudioDeviceAddress,
- const AudioDeviceTypeAddr *devTypeAddr) {
+jint createAudioDeviceFromNative(JNIEnv *env, jobject *jAudioDevice,
+ const AudioDeviceTypeAddr *devTypeAddr) {
jint jStatus = (jint)AUDIO_JAVA_SUCCESS;
jint jNativeType = (jint)devTypeAddr->mType;
ScopedLocalRef<jstring> jAddress(env, env->NewStringUTF(devTypeAddr->mAddress.data()));
- *jAudioDeviceAddress = env->NewObject(gAudioDeviceAddressClass, gAudioDeviceAddressCstor,
- jNativeType, jAddress.get());
+ *jAudioDevice =
+ env->NewObject(gAudioDeviceClass, gAudioDeviceCstor, jNativeType, jAddress.get());
return jStatus;
}
-}
+} // namespace android
-int register_android_media_AudioDeviceAddress(JNIEnv *env)
-{
- jclass audioDeviceTypeAddressClass = FindClassOrDie(env, "android/media/AudioDeviceAddress");
- gAudioDeviceAddressClass = MakeGlobalRefOrDie(env, audioDeviceTypeAddressClass);
- gAudioDeviceAddressCstor = GetMethodIDOrDie(env, audioDeviceTypeAddressClass, "<init>",
- "(ILjava/lang/String;)V");
+int register_android_media_AudioDevice(JNIEnv *env) {
+ jclass audioDeviceTypeAddressClass = FindClassOrDie(env, "android/media/AudioDevice");
+ gAudioDeviceClass = MakeGlobalRefOrDie(env, audioDeviceTypeAddressClass);
+ gAudioDeviceCstor =
+ GetMethodIDOrDie(env, audioDeviceTypeAddressClass, "<init>", "(ILjava/lang/String;)V");
return 0;
}
diff --git a/core/jni/android_media_AudioDeviceAddress.h b/core/jni/android_media_AudioDevice.h
index c66b17978776..fc92334db194 100644
--- a/core/jni/android_media_AudioDeviceAddress.h
+++ b/core/jni/android_media_AudioDevice.h
@@ -14,20 +14,20 @@
* limitations under the License.
*/
-#ifndef ANDROID_MEDIA_AUDIODEVICEADDRESS_H
-#define ANDROID_MEDIA_AUDIODEVICEADDRESS_H
+#ifndef ANDROID_MEDIA_AUDIODEVICE_H
+#define ANDROID_MEDIA_AUDIODEVICE_H
-#include <system/audio.h>
#include <media/AudioDeviceTypeAddr.h>
+#include <system/audio.h>
#include "jni.h"
namespace android {
-// Create a Java AudioDeviceAddress instance from a C++ AudioDeviceTypeAddress
+// Create a Java AudioDevice instance from a C++ AudioDeviceTypeAddress
-extern jint createAudioDeviceAddressFromNative(JNIEnv *env, jobject *jAudioDeviceAddress,
- const AudioDeviceTypeAddr *devTypeAddr);
+extern jint createAudioDeviceFromNative(JNIEnv *env, jobject *jAudioDevice,
+ const AudioDeviceTypeAddr *devTypeAddr);
} // namespace android
#endif \ No newline at end of file
diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp
index 0156e23e94b6..b4590f4f8b23 100644
--- a/core/jni/android_media_AudioSystem.cpp
+++ b/core/jni/android_media_AudioSystem.cpp
@@ -26,12 +26,6 @@
#include <nativehelper/JNIHelp.h>
#include "core_jni_helpers.h"
-#include "android_media_AudioAttributes.h"
-#include "android_media_AudioDeviceAddress.h"
-#include "android_media_AudioEffectDescriptor.h"
-#include "android_media_AudioErrors.h"
-#include "android_media_AudioFormat.h"
-#include "android_media_MicrophoneInfo.h"
#include <audiomanager/AudioManager.h>
#include <media/AudioPolicy.h>
#include <media/AudioSystem.h>
@@ -39,6 +33,12 @@
#include <nativehelper/ScopedLocalRef.h>
#include <system/audio.h>
#include <system/audio_policy.h>
+#include "android_media_AudioAttributes.h"
+#include "android_media_AudioDevice.h"
+#include "android_media_AudioEffectDescriptor.h"
+#include "android_media_AudioErrors.h"
+#include "android_media_AudioFormat.h"
+#include "android_media_MicrophoneInfo.h"
// ----------------------------------------------------------------------------
@@ -2349,7 +2349,7 @@ android_media_AudioSystem_getPreferredDeviceForStrategy(JNIEnv *env, jobject thi
jint strategy, jobjectArray jDeviceArray)
{
if (jDeviceArray == nullptr || env->GetArrayLength(jDeviceArray) != 1) {
- ALOGE("%s invalid array to store AudioDeviceAddress", __FUNCTION__);
+ ALOGE("%s invalid array to store AudioDevice", __FUNCTION__);
return (jint)AUDIO_JAVA_BAD_VALUE;
}
@@ -2359,10 +2359,10 @@ android_media_AudioSystem_getPreferredDeviceForStrategy(JNIEnv *env, jobject thi
if (status != NO_ERROR) {
return (jint) status;
}
- jobject jAudioDeviceAddress = NULL;
- jint jStatus = createAudioDeviceAddressFromNative(env, &jAudioDeviceAddress, &elDevice);
+ jobject jAudioDevice = NULL;
+ jint jStatus = createAudioDeviceFromNative(env, &jAudioDevice, &elDevice);
if (jStatus == AUDIO_JAVA_SUCCESS) {
- env->SetObjectArrayElement(jDeviceArray, 0, jAudioDeviceAddress);
+ env->SetObjectArrayElement(jDeviceArray, 0, jAudioDevice);
}
return jStatus;
}
@@ -2377,7 +2377,7 @@ android_media_AudioSystem_getDevicesForAttributes(JNIEnv *env, jobject thiz,
// with reverse JNI to make the array grow as need as this would be less efficient, and some
// components call this method often
if (jDeviceArray == nullptr || maxResultSize == 0) {
- ALOGE("%s invalid array to store AudioDeviceAddress", __FUNCTION__);
+ ALOGE("%s invalid array to store AudioDevice", __FUNCTION__);
return (jint)AUDIO_JAVA_BAD_VALUE;
}
@@ -2398,105 +2398,133 @@ android_media_AudioSystem_getDevicesForAttributes(JNIEnv *env, jobject thiz,
return AUDIO_JAVA_INVALID_OPERATION;
}
size_t index = 0;
- jobject jAudioDeviceAddress = NULL;
+ jobject jAudioDevice = NULL;
for (const auto& device : devices) {
- jStatus = createAudioDeviceAddressFromNative(env, &jAudioDeviceAddress, &device);
+ jStatus = createAudioDeviceFromNative(env, &jAudioDevice, &device);
if (jStatus != AUDIO_JAVA_SUCCESS) {
return jStatus;
}
- env->SetObjectArrayElement(jDeviceArray, index++, jAudioDeviceAddress);
+ env->SetObjectArrayElement(jDeviceArray, index++, jAudioDevice);
}
return jStatus;
}
// ----------------------------------------------------------------------------
-static const JNINativeMethod gMethods[] = {
- {"setParameters", "(Ljava/lang/String;)I", (void *)android_media_AudioSystem_setParameters},
- {"getParameters", "(Ljava/lang/String;)Ljava/lang/String;", (void *)android_media_AudioSystem_getParameters},
- {"muteMicrophone", "(Z)I", (void *)android_media_AudioSystem_muteMicrophone},
- {"isMicrophoneMuted", "()Z", (void *)android_media_AudioSystem_isMicrophoneMuted},
- {"isStreamActive", "(II)Z", (void *)android_media_AudioSystem_isStreamActive},
- {"isStreamActiveRemotely","(II)Z", (void *)android_media_AudioSystem_isStreamActiveRemotely},
- {"isSourceActive", "(I)Z", (void *)android_media_AudioSystem_isSourceActive},
- {"newAudioSessionId", "()I", (void *)android_media_AudioSystem_newAudioSessionId},
- {"newAudioPlayerId", "()I", (void *)android_media_AudioSystem_newAudioPlayerId},
- {"newAudioRecorderId", "()I", (void *)android_media_AudioSystem_newAudioRecorderId},
- {"setDeviceConnectionState", "(IILjava/lang/String;Ljava/lang/String;I)I", (void *)android_media_AudioSystem_setDeviceConnectionState},
- {"getDeviceConnectionState", "(ILjava/lang/String;)I", (void *)android_media_AudioSystem_getDeviceConnectionState},
- {"handleDeviceConfigChange", "(ILjava/lang/String;Ljava/lang/String;I)I", (void *)android_media_AudioSystem_handleDeviceConfigChange},
- {"setPhoneState", "(I)I", (void *)android_media_AudioSystem_setPhoneState},
- {"setForceUse", "(II)I", (void *)android_media_AudioSystem_setForceUse},
- {"getForceUse", "(I)I", (void *)android_media_AudioSystem_getForceUse},
- {"initStreamVolume", "(III)I", (void *)android_media_AudioSystem_initStreamVolume},
- {"setStreamVolumeIndex","(III)I", (void *)android_media_AudioSystem_setStreamVolumeIndex},
- {"getStreamVolumeIndex","(II)I", (void *)android_media_AudioSystem_getStreamVolumeIndex},
- {"setVolumeIndexForAttributes","(Landroid/media/AudioAttributes;II)I", (void *)android_media_AudioSystem_setVolumeIndexForAttributes},
- {"getVolumeIndexForAttributes","(Landroid/media/AudioAttributes;I)I", (void *)android_media_AudioSystem_getVolumeIndexForAttributes},
- {"getMinVolumeIndexForAttributes","(Landroid/media/AudioAttributes;)I", (void *)android_media_AudioSystem_getMinVolumeIndexForAttributes},
- {"getMaxVolumeIndexForAttributes","(Landroid/media/AudioAttributes;)I", (void *)android_media_AudioSystem_getMaxVolumeIndexForAttributes},
- {"setMasterVolume", "(F)I", (void *)android_media_AudioSystem_setMasterVolume},
- {"getMasterVolume", "()F", (void *)android_media_AudioSystem_getMasterVolume},
- {"setMasterMute", "(Z)I", (void *)android_media_AudioSystem_setMasterMute},
- {"getMasterMute", "()Z", (void *)android_media_AudioSystem_getMasterMute},
- {"setMasterMono", "(Z)I", (void *)android_media_AudioSystem_setMasterMono},
- {"getMasterMono", "()Z", (void *)android_media_AudioSystem_getMasterMono},
- {"setMasterBalance", "(F)I", (void *)android_media_AudioSystem_setMasterBalance},
- {"getMasterBalance", "()F", (void *)android_media_AudioSystem_getMasterBalance},
- {"getDevicesForStream", "(I)I", (void *)android_media_AudioSystem_getDevicesForStream},
- {"getPrimaryOutputSamplingRate", "()I", (void *)android_media_AudioSystem_getPrimaryOutputSamplingRate},
- {"getPrimaryOutputFrameCount", "()I", (void *)android_media_AudioSystem_getPrimaryOutputFrameCount},
- {"getOutputLatency", "(I)I", (void *)android_media_AudioSystem_getOutputLatency},
- {"setLowRamDevice", "(ZJ)I", (void *)android_media_AudioSystem_setLowRamDevice},
- {"checkAudioFlinger", "()I", (void *)android_media_AudioSystem_checkAudioFlinger},
- {"listAudioPorts", "(Ljava/util/ArrayList;[I)I",
- (void *)android_media_AudioSystem_listAudioPorts},
- {"createAudioPatch", "([Landroid/media/AudioPatch;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)I",
- (void *)android_media_AudioSystem_createAudioPatch},
- {"releaseAudioPatch", "(Landroid/media/AudioPatch;)I",
- (void *)android_media_AudioSystem_releaseAudioPatch},
- {"listAudioPatches", "(Ljava/util/ArrayList;[I)I",
- (void *)android_media_AudioSystem_listAudioPatches},
- {"setAudioPortConfig", "(Landroid/media/AudioPortConfig;)I",
- (void *)android_media_AudioSystem_setAudioPortConfig},
- {"startAudioSource", "(Landroid/media/AudioPortConfig;Landroid/media/AudioAttributes;)I",
- (void *)android_media_AudioSystem_startAudioSource},
- {"stopAudioSource", "(I)I", (void *)android_media_AudioSystem_stopAudioSource},
- {"getAudioHwSyncForSession", "(I)I",
- (void *)android_media_AudioSystem_getAudioHwSyncForSession},
- {"registerPolicyMixes", "(Ljava/util/ArrayList;Z)I",
- (void *)android_media_AudioSystem_registerPolicyMixes},
- {"setUidDeviceAffinities", "(I[I[Ljava/lang/String;)I",
- (void *)android_media_AudioSystem_setUidDeviceAffinities},
- {"removeUidDeviceAffinities", "(I)I",
- (void *)android_media_AudioSystem_removeUidDeviceAffinities},
- {"native_register_dynamic_policy_callback", "()V",
- (void *)android_media_AudioSystem_registerDynPolicyCallback},
- {"native_register_recording_callback", "()V",
- (void *)android_media_AudioSystem_registerRecordingCallback},
- {"systemReady", "()I", (void *)android_media_AudioSystem_systemReady},
- {"getStreamVolumeDB", "(III)F", (void *)android_media_AudioSystem_getStreamVolumeDB},
- {"native_is_offload_supported", "(IIIII)Z", (void *)android_media_AudioSystem_isOffloadSupported},
- {"getMicrophones", "(Ljava/util/ArrayList;)I", (void *)android_media_AudioSystem_getMicrophones},
- {"getSurroundFormats", "(Ljava/util/Map;Z)I", (void *)android_media_AudioSystem_getSurroundFormats},
- {"setSurroundFormatEnabled", "(IZ)I", (void *)android_media_AudioSystem_setSurroundFormatEnabled},
- {"setAssistantUid", "(I)I", (void *)android_media_AudioSystem_setAssistantUid},
- {"setA11yServicesUids", "([I)I", (void *)android_media_AudioSystem_setA11yServicesUids},
- {"isHapticPlaybackSupported", "()Z", (void *)android_media_AudioSystem_isHapticPlaybackSupported},
- {"getHwOffloadEncodingFormatsSupportedForA2DP", "(Ljava/util/ArrayList;)I",
- (void*)android_media_AudioSystem_getHwOffloadEncodingFormatsSupportedForA2DP},
- {"setSupportedSystemUsages", "([I)I", (void *)android_media_AudioSystem_setSupportedSystemUsages},
- {"setAllowedCapturePolicy", "(II)I", (void *)android_media_AudioSystem_setAllowedCapturePolicy},
- {"setRttEnabled", "(Z)I", (void *)android_media_AudioSystem_setRttEnabled},
- {"setAudioHalPids", "([I)I", (void *)android_media_AudioSystem_setAudioHalPids},
- {"isCallScreeningModeSupported", "()Z", (void *)android_media_AudioSystem_isCallScreeningModeSupported},
- {"setPreferredDeviceForStrategy", "(IILjava/lang/String;)I", (void *)android_media_AudioSystem_setPreferredDeviceForStrategy},
- {"removePreferredDeviceForStrategy", "(I)I", (void *)android_media_AudioSystem_removePreferredDeviceForStrategy},
- {"getPreferredDeviceForStrategy", "(I[Landroid/media/AudioDeviceAddress;)I", (void *)android_media_AudioSystem_getPreferredDeviceForStrategy},
- {"getDevicesForAttributes", "(Landroid/media/AudioAttributes;[Landroid/media/AudioDeviceAddress;)I", (void *)android_media_AudioSystem_getDevicesForAttributes},
- {"setUserIdDeviceAffinities", "(I[I[Ljava/lang/String;)I", (void *)android_media_AudioSystem_setUserIdDeviceAffinities},
- {"removeUserIdDeviceAffinities", "(I)I", (void *)android_media_AudioSystem_removeUserIdDeviceAffinities}
-};
+static const JNINativeMethod gMethods[] =
+ {{"setParameters", "(Ljava/lang/String;)I",
+ (void *)android_media_AudioSystem_setParameters},
+ {"getParameters", "(Ljava/lang/String;)Ljava/lang/String;",
+ (void *)android_media_AudioSystem_getParameters},
+ {"muteMicrophone", "(Z)I", (void *)android_media_AudioSystem_muteMicrophone},
+ {"isMicrophoneMuted", "()Z", (void *)android_media_AudioSystem_isMicrophoneMuted},
+ {"isStreamActive", "(II)Z", (void *)android_media_AudioSystem_isStreamActive},
+ {"isStreamActiveRemotely", "(II)Z",
+ (void *)android_media_AudioSystem_isStreamActiveRemotely},
+ {"isSourceActive", "(I)Z", (void *)android_media_AudioSystem_isSourceActive},
+ {"newAudioSessionId", "()I", (void *)android_media_AudioSystem_newAudioSessionId},
+ {"newAudioPlayerId", "()I", (void *)android_media_AudioSystem_newAudioPlayerId},
+ {"newAudioRecorderId", "()I", (void *)android_media_AudioSystem_newAudioRecorderId},
+ {"setDeviceConnectionState", "(IILjava/lang/String;Ljava/lang/String;I)I",
+ (void *)android_media_AudioSystem_setDeviceConnectionState},
+ {"getDeviceConnectionState", "(ILjava/lang/String;)I",
+ (void *)android_media_AudioSystem_getDeviceConnectionState},
+ {"handleDeviceConfigChange", "(ILjava/lang/String;Ljava/lang/String;I)I",
+ (void *)android_media_AudioSystem_handleDeviceConfigChange},
+ {"setPhoneState", "(I)I", (void *)android_media_AudioSystem_setPhoneState},
+ {"setForceUse", "(II)I", (void *)android_media_AudioSystem_setForceUse},
+ {"getForceUse", "(I)I", (void *)android_media_AudioSystem_getForceUse},
+ {"initStreamVolume", "(III)I", (void *)android_media_AudioSystem_initStreamVolume},
+ {"setStreamVolumeIndex", "(III)I", (void *)android_media_AudioSystem_setStreamVolumeIndex},
+ {"getStreamVolumeIndex", "(II)I", (void *)android_media_AudioSystem_getStreamVolumeIndex},
+ {"setVolumeIndexForAttributes", "(Landroid/media/AudioAttributes;II)I",
+ (void *)android_media_AudioSystem_setVolumeIndexForAttributes},
+ {"getVolumeIndexForAttributes", "(Landroid/media/AudioAttributes;I)I",
+ (void *)android_media_AudioSystem_getVolumeIndexForAttributes},
+ {"getMinVolumeIndexForAttributes", "(Landroid/media/AudioAttributes;)I",
+ (void *)android_media_AudioSystem_getMinVolumeIndexForAttributes},
+ {"getMaxVolumeIndexForAttributes", "(Landroid/media/AudioAttributes;)I",
+ (void *)android_media_AudioSystem_getMaxVolumeIndexForAttributes},
+ {"setMasterVolume", "(F)I", (void *)android_media_AudioSystem_setMasterVolume},
+ {"getMasterVolume", "()F", (void *)android_media_AudioSystem_getMasterVolume},
+ {"setMasterMute", "(Z)I", (void *)android_media_AudioSystem_setMasterMute},
+ {"getMasterMute", "()Z", (void *)android_media_AudioSystem_getMasterMute},
+ {"setMasterMono", "(Z)I", (void *)android_media_AudioSystem_setMasterMono},
+ {"getMasterMono", "()Z", (void *)android_media_AudioSystem_getMasterMono},
+ {"setMasterBalance", "(F)I", (void *)android_media_AudioSystem_setMasterBalance},
+ {"getMasterBalance", "()F", (void *)android_media_AudioSystem_getMasterBalance},
+ {"getDevicesForStream", "(I)I", (void *)android_media_AudioSystem_getDevicesForStream},
+ {"getPrimaryOutputSamplingRate", "()I",
+ (void *)android_media_AudioSystem_getPrimaryOutputSamplingRate},
+ {"getPrimaryOutputFrameCount", "()I",
+ (void *)android_media_AudioSystem_getPrimaryOutputFrameCount},
+ {"getOutputLatency", "(I)I", (void *)android_media_AudioSystem_getOutputLatency},
+ {"setLowRamDevice", "(ZJ)I", (void *)android_media_AudioSystem_setLowRamDevice},
+ {"checkAudioFlinger", "()I", (void *)android_media_AudioSystem_checkAudioFlinger},
+ {"listAudioPorts", "(Ljava/util/ArrayList;[I)I",
+ (void *)android_media_AudioSystem_listAudioPorts},
+ {"createAudioPatch",
+ "([Landroid/media/AudioPatch;[Landroid/media/AudioPortConfig;[Landroid/media/"
+ "AudioPortConfig;)I",
+ (void *)android_media_AudioSystem_createAudioPatch},
+ {"releaseAudioPatch", "(Landroid/media/AudioPatch;)I",
+ (void *)android_media_AudioSystem_releaseAudioPatch},
+ {"listAudioPatches", "(Ljava/util/ArrayList;[I)I",
+ (void *)android_media_AudioSystem_listAudioPatches},
+ {"setAudioPortConfig", "(Landroid/media/AudioPortConfig;)I",
+ (void *)android_media_AudioSystem_setAudioPortConfig},
+ {"startAudioSource", "(Landroid/media/AudioPortConfig;Landroid/media/AudioAttributes;)I",
+ (void *)android_media_AudioSystem_startAudioSource},
+ {"stopAudioSource", "(I)I", (void *)android_media_AudioSystem_stopAudioSource},
+ {"getAudioHwSyncForSession", "(I)I",
+ (void *)android_media_AudioSystem_getAudioHwSyncForSession},
+ {"registerPolicyMixes", "(Ljava/util/ArrayList;Z)I",
+ (void *)android_media_AudioSystem_registerPolicyMixes},
+ {"setUidDeviceAffinities", "(I[I[Ljava/lang/String;)I",
+ (void *)android_media_AudioSystem_setUidDeviceAffinities},
+ {"removeUidDeviceAffinities", "(I)I",
+ (void *)android_media_AudioSystem_removeUidDeviceAffinities},
+ {"native_register_dynamic_policy_callback", "()V",
+ (void *)android_media_AudioSystem_registerDynPolicyCallback},
+ {"native_register_recording_callback", "()V",
+ (void *)android_media_AudioSystem_registerRecordingCallback},
+ {"systemReady", "()I", (void *)android_media_AudioSystem_systemReady},
+ {"getStreamVolumeDB", "(III)F", (void *)android_media_AudioSystem_getStreamVolumeDB},
+ {"native_is_offload_supported", "(IIIII)Z",
+ (void *)android_media_AudioSystem_isOffloadSupported},
+ {"getMicrophones", "(Ljava/util/ArrayList;)I",
+ (void *)android_media_AudioSystem_getMicrophones},
+ {"getSurroundFormats", "(Ljava/util/Map;Z)I",
+ (void *)android_media_AudioSystem_getSurroundFormats},
+ {"setSurroundFormatEnabled", "(IZ)I",
+ (void *)android_media_AudioSystem_setSurroundFormatEnabled},
+ {"setAssistantUid", "(I)I", (void *)android_media_AudioSystem_setAssistantUid},
+ {"setA11yServicesUids", "([I)I", (void *)android_media_AudioSystem_setA11yServicesUids},
+ {"isHapticPlaybackSupported", "()Z",
+ (void *)android_media_AudioSystem_isHapticPlaybackSupported},
+ {"getHwOffloadEncodingFormatsSupportedForA2DP", "(Ljava/util/ArrayList;)I",
+ (void *)android_media_AudioSystem_getHwOffloadEncodingFormatsSupportedForA2DP},
+ {"setSupportedSystemUsages", "([I)I",
+ (void *)android_media_AudioSystem_setSupportedSystemUsages},
+ {"setAllowedCapturePolicy", "(II)I",
+ (void *)android_media_AudioSystem_setAllowedCapturePolicy},
+ {"setRttEnabled", "(Z)I", (void *)android_media_AudioSystem_setRttEnabled},
+ {"setAudioHalPids", "([I)I", (void *)android_media_AudioSystem_setAudioHalPids},
+ {"isCallScreeningModeSupported", "()Z",
+ (void *)android_media_AudioSystem_isCallScreeningModeSupported},
+ {"setPreferredDeviceForStrategy", "(IILjava/lang/String;)I",
+ (void *)android_media_AudioSystem_setPreferredDeviceForStrategy},
+ {"removePreferredDeviceForStrategy", "(I)I",
+ (void *)android_media_AudioSystem_removePreferredDeviceForStrategy},
+ {"getPreferredDeviceForStrategy", "(I[Landroid/media/AudioDevice;)I",
+ (void *)android_media_AudioSystem_getPreferredDeviceForStrategy},
+ {"getDevicesForAttributes",
+ "(Landroid/media/AudioAttributes;[Landroid/media/AudioDevice;)I",
+ (void *)android_media_AudioSystem_getDevicesForAttributes},
+ {"setUserIdDeviceAffinities", "(I[I[Ljava/lang/String;)I",
+ (void *)android_media_AudioSystem_setUserIdDeviceAffinities},
+ {"removeUserIdDeviceAffinities", "(I)I",
+ (void *)android_media_AudioSystem_removeUserIdDeviceAffinities}};
static const JNINativeMethod gEventHandlerMethods[] = {
{"native_setup",
diff --git a/media/java/android/media/AudioDeviceAddress.aidl b/media/java/android/media/AudioDevice.aidl
index 6a1a7f79247c..02071e5f0c13 100644
--- a/media/java/android/media/AudioDeviceAddress.aidl
+++ b/media/java/android/media/AudioDevice.aidl
@@ -15,4 +15,4 @@
package android.media;
-parcelable AudioDeviceAddress;
+parcelable AudioDevice;
diff --git a/media/java/android/media/AudioDeviceAddress.java b/media/java/android/media/AudioDevice.java
index 3d8fc373006e..31ecc7b4ead4 100644
--- a/media/java/android/media/AudioDeviceAddress.java
+++ b/media/java/android/media/AudioDevice.java
@@ -28,7 +28,7 @@ import java.util.Objects;
/**
* @hide
- * Class to represent device type (speaker, headset...), address and role (input, output)
+ * Class to represent device type (speaker, headset...), address (if known) and role (input, output)
* of an audio device.
* <p>Unlike {@link AudioDeviceInfo}, the device
* doesn't need to be connected to be uniquely identified, it can
@@ -39,7 +39,7 @@ import java.util.Objects;
* permission, APIs using one rely on MODIFY_AUDIO_ROUTING.
*/
@SystemApi
-public final class AudioDeviceAddress implements Parcelable {
+public final class AudioDevice implements Parcelable {
/**
* A role identifying input devices, such as microphones.
@@ -78,7 +78,7 @@ public final class AudioDeviceAddress implements Parcelable {
* type and address.
*/
@SystemApi
- public AudioDeviceAddress(@NonNull AudioDeviceInfo deviceInfo) {
+ public AudioDevice(@NonNull AudioDeviceInfo deviceInfo) {
Objects.requireNonNull(deviceInfo);
mRole = deviceInfo.isSink() ? ROLE_OUTPUT : ROLE_INPUT;
mType = deviceInfo.getType();
@@ -93,7 +93,7 @@ public final class AudioDeviceAddress implements Parcelable {
* @param address the address of the device, or an empty string for devices without one
*/
@SystemApi
- public AudioDeviceAddress(@Role int role, @AudioDeviceInfo.AudioDeviceType int type,
+ public AudioDevice(@Role int role, @AudioDeviceInfo.AudioDeviceType int type,
@NonNull String address) {
Objects.requireNonNull(address);
if (role != ROLE_OUTPUT && role != ROLE_INPUT) {
@@ -111,7 +111,7 @@ public final class AudioDeviceAddress implements Parcelable {
mAddress = address;
}
- /*package*/ AudioDeviceAddress(int nativeType, @NonNull String address) {
+ /*package*/ AudioDevice(int nativeType, @NonNull String address) {
mRole = (nativeType & AudioSystem.DEVICE_BIT_IN) != 0 ? ROLE_INPUT : ROLE_OUTPUT;
mType = AudioDeviceInfo.convertInternalDeviceToDeviceType(nativeType);
mAddress = address;
@@ -157,7 +157,7 @@ public final class AudioDeviceAddress implements Parcelable {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- AudioDeviceAddress that = (AudioDeviceAddress) o;
+ AudioDevice that = (AudioDevice) o;
return ((mRole == that.mRole)
&& (mType == that.mType)
&& mAddress.equals(that.mAddress));
@@ -170,7 +170,7 @@ public final class AudioDeviceAddress implements Parcelable {
@Override
public String toString() {
- return new String("AudioDeviceAddress:"
+ return new String("AudioDevice:"
+ " role:" + roleToString(mRole)
+ " type:" + (mRole == ROLE_OUTPUT ? AudioSystem.getOutputDeviceName(
AudioDeviceInfo.convertDeviceTypeToInternalDevice(mType))
@@ -191,25 +191,25 @@ public final class AudioDeviceAddress implements Parcelable {
dest.writeString(mAddress);
}
- private AudioDeviceAddress(@NonNull Parcel in) {
+ private AudioDevice(@NonNull Parcel in) {
mRole = in.readInt();
mType = in.readInt();
mAddress = in.readString();
}
- public static final @NonNull Parcelable.Creator<AudioDeviceAddress> CREATOR =
- new Parcelable.Creator<AudioDeviceAddress>() {
+ public static final @NonNull Parcelable.Creator<AudioDevice> CREATOR =
+ new Parcelable.Creator<AudioDevice>() {
/**
- * Rebuilds an AudioDeviceAddress previously stored with writeToParcel().
- * @param p Parcel object to read the AudioDeviceAddress from
- * @return a new AudioDeviceAddress created from the data in the parcel
+ * Rebuilds an AudioDevice previously stored with writeToParcel().
+ * @param p Parcel object to read the AudioDevice from
+ * @return a new AudioDevice created from the data in the parcel
*/
- public AudioDeviceAddress createFromParcel(Parcel p) {
- return new AudioDeviceAddress(p);
+ public AudioDevice createFromParcel(Parcel p) {
+ return new AudioDevice(p);
}
- public AudioDeviceAddress[] newArray(int size) {
- return new AudioDeviceAddress[size];
+ public AudioDevice[] newArray(int size) {
+ return new AudioDevice[size];
}
};
}
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 7b17f9f764fb..4a1088bfa877 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -1596,7 +1596,7 @@ public class AudioManager {
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
public boolean setPreferredDeviceForStrategy(@NonNull AudioProductStrategy strategy,
- @NonNull AudioDeviceAddress device) {
+ @NonNull AudioDevice device) {
Objects.requireNonNull(strategy);
Objects.requireNonNull(device);
try {
@@ -1611,7 +1611,7 @@ public class AudioManager {
/**
* @hide
* Removes the preferred audio device previously set with
- * {@link #setPreferredDeviceForStrategy(AudioProductStrategy, AudioDeviceAddress)}.
+ * {@link #setPreferredDeviceForStrategy(AudioProductStrategy, AudioDevice)}.
* @param strategy the audio strategy whose routing will be affected
* @return true if the operation was successful, false otherwise (invalid strategy, or no
* device set for example)
@@ -1632,14 +1632,14 @@ public class AudioManager {
/**
* @hide
* Return the preferred device for an audio strategy, previously set with
- * {@link #setPreferredDeviceForStrategy(AudioProductStrategy, AudioDeviceAddress)}
+ * {@link #setPreferredDeviceForStrategy(AudioProductStrategy, AudioDevice)}
* @param strategy the strategy to query
* @return the preferred device for that strategy, or null if none was ever set or if the
* strategy is invalid
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
- public @Nullable AudioDeviceAddress getPreferredDeviceForStrategy(
+ public @Nullable AudioDevice getPreferredDeviceForStrategy(
@NonNull AudioProductStrategy strategy) {
Objects.requireNonNull(strategy);
try {
@@ -4379,7 +4379,7 @@ public class AudioManager {
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING)
- public @NonNull List<AudioDeviceAddress> getDevicesForAttributes(
+ public @NonNull List<AudioDevice> getDevicesForAttributes(
@NonNull AudioAttributes attributes) {
Objects.requireNonNull(attributes);
final IAudioService service = getService();
diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java
index 02cb8aafea0c..0a0f7f643ac9 100644
--- a/media/java/android/media/AudioSystem.java
+++ b/media/java/android/media/AudioSystem.java
@@ -1085,18 +1085,18 @@ public class AudioSystem
* @return an empty list if there was an issue with the request, a list of audio devices
* otherwise (typically one device, except for duplicated paths).
*/
- public static @NonNull ArrayList<AudioDeviceAddress> getDevicesForAttributes(
+ public static @NonNull ArrayList<AudioDevice> getDevicesForAttributes(
@NonNull AudioAttributes attributes) {
Objects.requireNonNull(attributes);
- final AudioDeviceAddress[] devices = new AudioDeviceAddress[MAX_DEVICE_ROUTING];
+ final AudioDevice[] devices = new AudioDevice[MAX_DEVICE_ROUTING];
final int res = getDevicesForAttributes(attributes, devices);
- final ArrayList<AudioDeviceAddress> routeDevices = new ArrayList<>();
+ final ArrayList<AudioDevice> routeDevices = new ArrayList<>();
if (res != SUCCESS) {
Log.e(TAG, "error " + res + " in getDevicesForAttributes for " + attributes);
return routeDevices;
}
- for (AudioDeviceAddress device : devices) {
+ for (AudioDevice device : devices) {
if (device != null) {
routeDevices.add(device);
}
@@ -1106,12 +1106,12 @@ public class AudioSystem
/**
* Maximum number of audio devices a track is ever routed to, determines the size of the
- * array passed to {@link #getDevicesForAttributes(AudioAttributes, AudioDeviceAddress[])}
+ * array passed to {@link #getDevicesForAttributes(AudioAttributes, AudioDevice[])}
*/
private static final int MAX_DEVICE_ROUTING = 4;
private static native int getDevicesForAttributes(@NonNull AudioAttributes aa,
- @NonNull AudioDeviceAddress[] devices);
+ @NonNull AudioDevice[] devices);
/** @hide returns true if master mono is enabled. */
public static native boolean getMasterMono();
@@ -1246,7 +1246,7 @@ public class AudioSystem
* @return {@link #SUCCESS} if successfully set
*/
public static int setPreferredDeviceForStrategy(
- int strategy, @NonNull AudioDeviceAddress device) {
+ int strategy, @NonNull AudioDevice device) {
return setPreferredDeviceForStrategy(strategy,
AudioDeviceInfo.convertDeviceTypeToInternalDevice(device.getType()),
device.getAddress());
@@ -1277,7 +1277,7 @@ public class AudioSystem
* and written to the array
*/
public static native int getPreferredDeviceForStrategy(int strategy,
- AudioDeviceAddress[] device);
+ AudioDevice[] device);
// Items shared with audio service
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index 64c5c05b5621..0fbc0d2180ba 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -18,7 +18,7 @@ package android.media;
import android.bluetooth.BluetoothDevice;
import android.media.AudioAttributes;
-import android.media.AudioDeviceAddress;
+import android.media.AudioDevice;
import android.media.AudioFocusInfo;
import android.media.AudioPlaybackConfiguration;
import android.media.AudioRecordingConfiguration;
@@ -274,13 +274,13 @@ interface IAudioService {
boolean isCallScreeningModeSupported();
- int setPreferredDeviceForStrategy(in int strategy, in AudioDeviceAddress device);
+ int setPreferredDeviceForStrategy(in int strategy, in AudioDevice device);
int removePreferredDeviceForStrategy(in int strategy);
- AudioDeviceAddress getPreferredDeviceForStrategy(in int strategy);
+ AudioDevice getPreferredDeviceForStrategy(in int strategy);
- List<AudioDeviceAddress> getDevicesForAttributes(in AudioAttributes attributes);
+ List<AudioDevice> getDevicesForAttributes(in AudioAttributes attributes);
int setAllowedCapturePolicy(in int capturePolicy);
diff --git a/media/java/android/media/audiofx/AudioEffect.java b/media/java/android/media/audiofx/AudioEffect.java
index c25a5333017b..6157ef4657ed 100644
--- a/media/java/android/media/audiofx/AudioEffect.java
+++ b/media/java/android/media/audiofx/AudioEffect.java
@@ -25,7 +25,7 @@ import android.annotation.SystemApi;
import android.annotation.TestApi;
import android.app.ActivityThread;
import android.compat.annotation.UnsupportedAppUsage;
-import android.media.AudioDeviceAddress;
+import android.media.AudioDevice;
import android.media.AudioDeviceInfo;
import android.media.AudioSystem;
import android.os.Build;
@@ -476,12 +476,12 @@ public class AudioEffect {
*/
@SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_DEFAULT_AUDIO_EFFECTS)
- public AudioEffect(@NonNull UUID uuid, @NonNull AudioDeviceAddress device) {
+ public AudioEffect(@NonNull UUID uuid, @NonNull AudioDevice device) {
this(EFFECT_TYPE_NULL, Objects.requireNonNull(uuid), 0, -2, Objects.requireNonNull(device));
}
private AudioEffect(UUID type, UUID uuid, int priority,
- int audioSession, @Nullable AudioDeviceAddress device)
+ int audioSession, @Nullable AudioDevice device)
throws IllegalArgumentException, UnsupportedOperationException,
RuntimeException {
int[] id = new int[1];
diff --git a/services/core/java/com/android/server/audio/AudioDeviceBroker.java b/services/core/java/com/android/server/audio/AudioDeviceBroker.java
index 60f420e17e3b..e17c1f8f8276 100644
--- a/services/core/java/com/android/server/audio/AudioDeviceBroker.java
+++ b/services/core/java/com/android/server/audio/AudioDeviceBroker.java
@@ -24,7 +24,7 @@ import android.bluetooth.BluetoothProfile;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
-import android.media.AudioDeviceAddress;
+import android.media.AudioDevice;
import android.media.AudioManager;
import android.media.AudioRoutesInfo;
import android.media.AudioSystem;
@@ -402,7 +402,7 @@ import java.io.PrintWriter;
}
/*package*/ int setPreferredDeviceForStrategySync(int strategy,
- @NonNull AudioDeviceAddress device) {
+ @NonNull AudioDevice device) {
return mDeviceInventory.setPreferredDeviceForStrategySync(strategy, device);
}
@@ -543,7 +543,7 @@ import java.io.PrintWriter;
sendLMsgNoDelay(MSG_L_SCOCLIENT_DIED, SENDMSG_QUEUE, obj);
}
- /*package*/ void postSaveSetPreferredDeviceForStrategy(int strategy, AudioDeviceAddress device)
+ /*package*/ void postSaveSetPreferredDeviceForStrategy(int strategy, AudioDevice device)
{
sendILMsgNoDelay(MSG_IL_SAVE_PREF_DEVICE_FOR_STRATEGY, SENDMSG_QUEUE, strategy, device);
}
@@ -904,7 +904,7 @@ import java.io.PrintWriter;
} break;
case MSG_IL_SAVE_PREF_DEVICE_FOR_STRATEGY: {
final int strategy = msg.arg1;
- final AudioDeviceAddress device = (AudioDeviceAddress) msg.obj;
+ final AudioDevice device = (AudioDevice) msg.obj;
mDeviceInventory.onSaveSetPreferredDevice(strategy, device);
} break;
case MSG_I_SAVE_REMOVE_PREF_DEVICE_FOR_STRATEGY: {
diff --git a/services/core/java/com/android/server/audio/AudioDeviceInventory.java b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
index 75d9dd817487..1f998c377c7b 100644
--- a/services/core/java/com/android/server/audio/AudioDeviceInventory.java
+++ b/services/core/java/com/android/server/audio/AudioDeviceInventory.java
@@ -23,7 +23,7 @@ import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothHearingAid;
import android.bluetooth.BluetoothProfile;
import android.content.Intent;
-import android.media.AudioDeviceAddress;
+import android.media.AudioDevice;
import android.media.AudioDevicePort;
import android.media.AudioFormat;
import android.media.AudioManager;
@@ -75,7 +75,7 @@ public class AudioDeviceInventory {
private final ArrayMap<Integer, String> mApmConnectedDevices = new ArrayMap<>();
// List of preferred devices for strategies
- private final ArrayMap<Integer, AudioDeviceAddress> mPreferredDevices = new ArrayMap<>();
+ private final ArrayMap<Integer, AudioDevice> mPreferredDevices = new ArrayMap<>();
// the wrapper for AudioSystem static methods, allows us to spy AudioSystem
private final @NonNull AudioSystemAdapter mAudioSystem;
@@ -468,7 +468,7 @@ public class AudioDeviceInventory {
}
}
- /*package*/ void onSaveSetPreferredDevice(int strategy, @NonNull AudioDeviceAddress device) {
+ /*package*/ void onSaveSetPreferredDevice(int strategy, @NonNull AudioDevice device) {
mPreferredDevices.put(strategy, device);
}
@@ -480,7 +480,7 @@ public class AudioDeviceInventory {
//
/*package*/ int setPreferredDeviceForStrategySync(int strategy,
- @NonNull AudioDeviceAddress device) {
+ @NonNull AudioDevice device) {
final long identity = Binder.clearCallingIdentity();
final int status = mAudioSystem.setPreferredDeviceForStrategy(strategy, device);
Binder.restoreCallingIdentity(identity);
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 82a2f01d4857..342ce22066b6 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -65,7 +65,7 @@ import android.hardware.usb.UsbManager;
import android.hidl.manager.V1_0.IServiceManager;
import android.media.AudioAttributes;
import android.media.AudioAttributes.AttributeSystemUsage;
-import android.media.AudioDeviceAddress;
+import android.media.AudioDevice;
import android.media.AudioDeviceInfo;
import android.media.AudioFocusInfo;
import android.media.AudioFocusRequest;
@@ -1712,7 +1712,7 @@ public class AudioService extends IAudioService.Stub
// IPC methods
///////////////////////////////////////////////////////////////////////////
/** @see AudioManager#setPreferredDeviceForStrategy(AudioProductStrategy, AudioDeviceInfo) */
- public int setPreferredDeviceForStrategy(int strategy, AudioDeviceAddress device) {
+ public int setPreferredDeviceForStrategy(int strategy, AudioDevice device) {
if (device == null) {
return AudioSystem.ERROR;
}
@@ -1721,7 +1721,7 @@ public class AudioService extends IAudioService.Stub
"setPreferredDeviceForStrategy u/pid:%d/%d strat:%d dev:%s",
Binder.getCallingUid(), Binder.getCallingPid(), strategy, device.toString());
sDeviceLogger.log(new AudioEventLogger.StringEvent(logString).printLog(TAG));
- if (device.getRole() == AudioDeviceAddress.ROLE_INPUT) {
+ if (device.getRole() == AudioDevice.ROLE_INPUT) {
Log.e(TAG, "Unsupported input routing in " + logString);
return AudioSystem.ERROR;
}
@@ -1749,9 +1749,9 @@ public class AudioService extends IAudioService.Stub
}
/** @see AudioManager#getPreferredDeviceForStrategy(AudioProductStrategy) */
- public AudioDeviceAddress getPreferredDeviceForStrategy(int strategy) {
+ public AudioDevice getPreferredDeviceForStrategy(int strategy) {
enforceModifyAudioRoutingPermission();
- AudioDeviceAddress[] devices = new AudioDeviceAddress[1];
+ AudioDevice[] devices = new AudioDevice[1];
final long identity = Binder.clearCallingIdentity();
final int status = AudioSystem.getPreferredDeviceForStrategy(strategy, devices);
Binder.restoreCallingIdentity(identity);
@@ -1765,7 +1765,7 @@ public class AudioService extends IAudioService.Stub
}
/** @see AudioManager#getDevicesForAttributes(AudioAttributes) */
- public @NonNull ArrayList<AudioDeviceAddress> getDevicesForAttributes(
+ public @NonNull ArrayList<AudioDevice> getDevicesForAttributes(
@NonNull AudioAttributes attributes) {
Objects.requireNonNull(attributes);
enforceModifyAudioRoutingPermission();
diff --git a/services/core/java/com/android/server/audio/AudioSystemAdapter.java b/services/core/java/com/android/server/audio/AudioSystemAdapter.java
index 9d06b4257b62..a3086c050af1 100644
--- a/services/core/java/com/android/server/audio/AudioSystemAdapter.java
+++ b/services/core/java/com/android/server/audio/AudioSystemAdapter.java
@@ -17,7 +17,7 @@
package com.android.server.audio;
import android.annotation.NonNull;
-import android.media.AudioDeviceAddress;
+import android.media.AudioDevice;
import android.media.AudioSystem;
import android.util.Log;
@@ -86,12 +86,12 @@ public class AudioSystemAdapter {
}
/**
- * Same as {@link AudioSystem#setPreferredDeviceForStrategy(int, AudioDeviceAddress)}
+ * Same as {@link AudioSystem#setPreferredDeviceForStrategy(int, AudioDevice)}
* @param strategy
* @param device
* @return
*/
- public int setPreferredDeviceForStrategy(int strategy, @NonNull AudioDeviceAddress device) {
+ public int setPreferredDeviceForStrategy(int strategy, @NonNull AudioDevice device) {
return AudioSystem.setPreferredDeviceForStrategy(strategy, device);
}
@@ -138,7 +138,7 @@ public class AudioSystemAdapter {
}
@Override
- public int setPreferredDeviceForStrategy(int strategy, @NonNull AudioDeviceAddress device) {
+ public int setPreferredDeviceForStrategy(int strategy, @NonNull AudioDevice device) {
return AudioSystem.AUDIO_STATUS_OK;
}