From b6562db67a60dffc5003683d9804a1cdfd65e343 Mon Sep 17 00:00:00 2001 From: Jean-Michel Trivi Date: Wed, 11 May 2022 23:00:17 +0000 Subject: [PATCH] AudioService: logs for volume behavior and absolute volume on A2DP Bug: 230623091 Test: adb logcat | grep AudioService Change-Id: Ie8b020d3594399ec56d9f24ba88b325c383f3083 --- .../media/AudioDeviceVolumeManager.java | 22 +++++++++++++++++++ .../android/server/audio/AudioService.java | 7 +++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/media/java/android/media/AudioDeviceVolumeManager.java b/media/java/android/media/AudioDeviceVolumeManager.java index 11cacd01f53da..7e2a3b491a8f7 100644 --- a/media/java/android/media/AudioDeviceVolumeManager.java +++ b/media/java/android/media/AudioDeviceVolumeManager.java @@ -304,6 +304,28 @@ public class AudioDeviceVolumeManager { "removeOnDeviceVolumeBehaviorChangedListener"); } + /** + * Return human-readable name for volume behavior + * @param behavior one of the volume behaviors defined in AudioManager + * @return a string for the given behavior + */ + public static String volumeBehaviorName(@AudioManager.DeviceVolumeBehavior int behavior) { + switch (behavior) { + case AudioManager.DEVICE_VOLUME_BEHAVIOR_VARIABLE: + return "DEVICE_VOLUME_BEHAVIOR_VARIABLE"; + case AudioManager.DEVICE_VOLUME_BEHAVIOR_FULL: + return "DEVICE_VOLUME_BEHAVIOR_FULL"; + case AudioManager.DEVICE_VOLUME_BEHAVIOR_FIXED: + return "DEVICE_VOLUME_BEHAVIOR_FIXED"; + case AudioManager.DEVICE_VOLUME_BEHAVIOR_ABSOLUTE: + return "DEVICE_VOLUME_BEHAVIOR_ABSOLUTE"; + case AudioManager.DEVICE_VOLUME_BEHAVIOR_ABSOLUTE_MULTI_MODE: + return "DEVICE_VOLUME_BEHAVIOR_ABSOLUTE_MULTI_MODE"; + default: + return "invalid volume behavior " + behavior; + } + } + private final class DeviceVolumeBehaviorDispatcherStub extends IDeviceVolumeBehaviorDispatcher.Stub implements CallbackUtil.DispatcherStub { public void register(boolean register) { diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index aed63ce5b2c6e..efa39f29660ff 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -6648,6 +6648,11 @@ public class AudioService extends IAudioService.Stub // verify arguments Objects.requireNonNull(device); AudioManager.enforceValidVolumeBehavior(deviceVolumeBehavior); + sVolumeLogger.log(new AudioEventLogger.StringEvent("setDeviceVolumeBehavior: dev:" + + AudioSystem.getOutputDeviceName(device.getInternalType()) + " addr:" + + device.getAddress() + " behavior:" + + AudioDeviceVolumeManager.volumeBehaviorName(deviceVolumeBehavior) + + " pack:" + pkgName).printLog(TAG)); if (pkgName == null) { pkgName = ""; } @@ -8363,7 +8368,7 @@ public class AudioService extends IAudioService.Stub private void avrcpSupportsAbsoluteVolume(String address, boolean support) { // address is not used for now, but may be used when multiple a2dp devices are supported sVolumeLogger.log(new AudioEventLogger.StringEvent("avrcpSupportsAbsoluteVolume addr=" - + address + " support=" + support)); + + address + " support=" + support).printLog(TAG)); mDeviceBroker.setAvrcpAbsoluteVolumeSupported(support); setAvrcpAbsoluteVolumeSupported(support); }