am 6a5f9f6d: Merge "Configuration for lock and UI sound levels" into jb-dev
* commit '6a5f9f6ddbfcb97a25436ad34be39fc7b3b45168':
Configuration for lock and UI sound levels
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 09e3fbb..f623d48 100755
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -76,6 +76,13 @@
<item>0</item> <item>5</item> <!-- default: always increase volume by 5% -->
</integer-array>
+ <!-- The attenuation in dB applied to the sound effects played
+ through AudioManager.playSoundEffect() when no volume is specified. -->
+ <integer name="config_soundEffectVolumeDb">-6</integer>
+
+ <!-- The attenuation in dB applied to the lock/unlock sounds. -->
+ <integer name="config_lockSoundVolumeDb">-6</integer>
+
<!-- Flag indicating whether the AUDIO_BECOMING_NOISY notification should
be sent during a change to the audio output device. -->
<bool name="config_sendAudioBecomingNoisy">true</bool>
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 48d5b31..e1f15cf 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -276,6 +276,8 @@
<java-symbol type="integer" name="db_wal_autocheckpoint" />
<java-symbol type="integer" name="max_action_buttons" />
<java-symbol type="integer" name="config_wifi_driver_stop_delay" />
+ <java-symbol type="integer" name="config_soundEffectVolumeDb" />
+ <java-symbol type="integer" name="config_lockSoundVolumeDb" />
<java-symbol type="color" name="tab_indicator_text_v4" />
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index 5da30bd..a69912d 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -167,7 +167,6 @@
private SoundPool mSoundPool;
private final Object mSoundEffectsLock = new Object();
private static final int NUM_SOUNDPOOL_CHANNELS = 4;
- private static final int SOUND_EFFECT_VOLUME = 1000;
// Internally master volume is a float in the 0.0 - 1.0 range,
// but to support integer based AudioManager API we translate it to 0 - 100
@@ -372,10 +371,8 @@
private SoundPoolListenerThread mSoundPoolListenerThread;
// message looper for SoundPool listener
private Looper mSoundPoolLooper = null;
- // default volume applied to sound played with playSoundEffect()
- private static final int SOUND_EFFECT_DEFAULT_VOLUME_DB = 0;
- // volume applied to sound played with playSoundEffect() read from ro.config.sound_fx_volume
- private int SOUND_EFFECT_VOLUME_DB;
+ // volume applied to sound played with playSoundEffect()
+ private static int SOUND_EFFECT_VOLUME_DB;
// getActiveStreamType() will return STREAM_NOTIFICATION during this period after a notification
// stopped
private static final int NOTIFICATION_VOLUME_DELAY_MS = 5000;
@@ -422,9 +419,8 @@
"ro.config.vc_call_vol_steps",
MAX_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL]);
- SOUND_EFFECT_VOLUME_DB = SystemProperties.getInt(
- "ro.config.sound_fx_volume",
- SOUND_EFFECT_DEFAULT_VOLUME_DB);
+ SOUND_EFFECT_VOLUME_DB = context.getResources().getInteger(
+ com.android.internal.R.integer.config_soundEffectVolumeDb);
mVolumePanel = new VolumePanel(context, this);
mMode = AudioSystem.MODE_NORMAL;
diff --git a/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java b/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java
index 11a1cd6..85156998 100644
--- a/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java
+++ b/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java
@@ -251,7 +251,11 @@
private int mLockSoundId;
private int mUnlockSoundId;
private int mLockSoundStreamId;
- private int mMasterStreamMaxVolume;
+
+ /**
+ * The volume applied to the lock/unlock sounds.
+ */
+ private final float mLockSoundVolume;
InfoCallbackImpl mInfoCallback = new InfoCallbackImpl() {
@@ -329,6 +333,9 @@
if (soundPath == null || mUnlockSoundId == 0) {
if (DEBUG) Log.d(TAG, "failed to load sound from " + soundPath);
}
+ int lockSoundDefaultAttenuation = context.getResources().getInteger(
+ com.android.internal.R.integer.config_lockSoundVolumeDb);
+ mLockSoundVolume = (float)Math.pow(10, lockSoundDefaultAttenuation/20);
IntentFilter userFilter = new IntentFilter();
userFilter.addAction(Intent.ACTION_USER_SWITCHED);
userFilter.addAction(Intent.ACTION_USER_REMOVED);
@@ -1117,7 +1124,8 @@
// If the stream is muted, don't play the sound
if (mAudioManager.isStreamMute(mMasterStreamType)) return;
- mLockSoundStreamId = mLockSounds.play(whichSound, 1.0f, 1.0f, 1, 0, 1.0f);
+ mLockSoundStreamId = mLockSounds.play(whichSound,
+ mLockSoundVolume, mLockSoundVolume, 1/*priortiy*/, 0/*loop*/, 1.0f/*rate*/);
}
}