From 2f4a2b139b4c1dde7be1d14333ad02553734c528 Mon Sep 17 00:00:00 2001 From: Zhihai Xu Date: Fri, 10 Jan 2014 16:44:39 -0800 Subject: [PATCH] setAvrcpAbsoluteVolume is passed wrong unit parameter from AudioManager setAvrcpAbsoluteVolume is passed wrong unit parameter from AudioManager. It cause maximize volume in Bluetooth speaker/device. The volume expected by Bluetooth Avrcp should be from 0 to 15. But the current volume parameter passed to Bluetooth Avrcp is from 0 to 150. It is scaled by 10 times than the correct volume. index = rescaleIndex(index * 10, streamType, streamTypeAlias); Should divide the volume by 10 before pass to Bluetooth Avrcp. bug:12495379 Change-Id: I0432f83ca4a0c134244d96b2eea14d7168e9a9ff --- media/java/android/media/AudioService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index b836f50b6b52..17c45950246b 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -1019,7 +1019,7 @@ public class AudioService extends IAudioService.Stub { (flags & AudioManager.FLAG_BLUETOOTH_ABS_VOLUME) == 0) { synchronized (mA2dpAvrcpLock) { if (mA2dp != null && mAvrcpAbsVolSupported) { - mA2dp.setAvrcpAbsoluteVolume(index); + mA2dp.setAvrcpAbsoluteVolume(index / 10); } } } -- 2.11.0