diff options
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; } |