From 3c652ca5a546e7227a5f4bdbf0f81552b2c91383 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Mon, 21 Jun 2010 20:46:26 -0700 Subject: [PATCH] Fix issue 2301630: Mismatch of state occurs when media server is killed while in-call. Use setParameters() API to indicate to audio HAL that we are restarting the media server after a crash. The use made by audio HAL implementation of this indication is platform specific. Change-Id: I085b174fa1474575da0e4d295921079b6b68efb8 --- media/java/android/media/AudioService.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index bd78f9363f88d..50f0674c28abf 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -1627,6 +1627,12 @@ public class AudioService extends IAudioService.Stub { case MSG_MEDIA_SERVER_STARTED: Log.e(TAG, "Media server started."); + // indicate to audio HAL that we start the reconfiguration phase after a media + // server crash + // Note that MSG_MEDIA_SERVER_STARTED message is only received when the media server + // process restarts after a crash, not the first time it is started. + AudioSystem.setParameters("restarting=true"); + // Restore device connection states Set set = mConnectedDevices.entrySet(); Iterator i = set.iterator(); @@ -1660,6 +1666,9 @@ public class AudioService extends IAudioService.Stub { // Restore ringer mode setRingerModeInt(getRingerMode(), false); + + // indicate the end of reconfiguration phase to audio HAL + AudioSystem.setParameters("restarting=false"); break; case MSG_PLAY_SOUND_EFFECT: