From a2aa08e20cb4f1e302bb7ae05882cd1be8cfa0d2 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Tue, 8 Nov 2011 10:31:21 -0800 Subject: AudioManager: transparently convert volume settings for other streams to master volume if config_useMasterVolume is set. This allows Music2 and other media apps to control master volume without changing their code Bug: 5567694 Change-Id: I48b6260b193b22c395be5a31cd1d270b2929a91e Signed-off-by: Mike Lockwood --- core/java/android/view/VolumePanel.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'core/java/android/view/VolumePanel.java') diff --git a/core/java/android/view/VolumePanel.java b/core/java/android/view/VolumePanel.java index e7e189057364..c456ee4bef63 100644 --- a/core/java/android/view/VolumePanel.java +++ b/core/java/android/view/VolumePanel.java @@ -93,7 +93,7 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie private static final int MSG_RINGER_MODE_CHANGED = 6; // Pseudo stream type for master volume - private static final int STREAM_MASTER = -1; + private static final int STREAM_MASTER = -100; protected Context mContext; private AudioManager mAudioManager; @@ -303,34 +303,30 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie } private int getStreamMaxVolume(int streamType) { - // master volume is 0.0f - 1.0f, but we will use 0 - 100 internally if (streamType == STREAM_MASTER) { - return 100; + return mAudioService.getMasterMaxVolume(); } else { return mAudioService.getStreamMaxVolume(streamType); } } private int getStreamVolume(int streamType) { - // master volume is 0.0f - 1.0f, but we will use 0 - 100 internally if (streamType == STREAM_MASTER) { - return Math.round(mAudioService.getMasterVolume() * 100); + return mAudioService.getMasterVolume(); } else { return mAudioService.getStreamVolume(streamType); } } private void setStreamVolume(int streamType, int index, int flags) { - // master volume is 0.0f - 1.0f, but we will use 0 - 100 internally if (streamType == STREAM_MASTER) { - mAudioService.setMasterVolume((float)index / 100.0f); + mAudioService.setMasterVolume(index, flags); } else { mAudioService.setStreamVolume(streamType, index, flags); } } private int getLastAudibleStreamVolume(int streamType) { - // master volume is 0.0f - 1.0f, but we will use 0 - 100 internally if (streamType == STREAM_MASTER) { // master volume mute not yet supported return getStreamVolume(STREAM_MASTER); -- cgit v1.2.3