audio: End voice call in set_mode()

Previously, we would only end the voice call once the next output
stream happened (and parameters would be set).

Change-Id: Id0d2711605e57ad69d9b26b36afb562444349358
(cherry picked from commit 5169e86c10b7429b01d6ab0500a0509141dcbfe1)
tirimbino
Christopher N. Hesse 7 years ago
parent 77880a2b13
commit 6c0020c6a9
  1. 8
      audio/audio_hw.c

@ -2942,10 +2942,6 @@ static int out_set_parameters(struct audio_stream *stream, const char *kvpairs)
} }
} }
if ((adev->mode == AUDIO_MODE_NORMAL) && adev->voice.in_call &&
(out == adev->primary_output)) {
stop_voice_call(adev);
}
pthread_mutex_unlock(&adev->lock); pthread_mutex_unlock(&adev->lock);
pthread_mutex_unlock(&out->lock); pthread_mutex_unlock(&out->lock);
#ifdef PREPROCESSING_ENABLED #ifdef PREPROCESSING_ENABLED
@ -4278,6 +4274,10 @@ static int adev_set_mode(struct audio_hw_device *dev, audio_mode_t mode)
ALOGE("Failed setting amplifier mode"); ALOGE("Failed setting amplifier mode");
} }
adev->mode = mode; adev->mode = mode;
if ((mode == AUDIO_MODE_NORMAL) && adev->voice.in_call) {
stop_voice_call(adev);
}
} }
pthread_mutex_unlock(&adev->lock); pthread_mutex_unlock(&adev->lock);
return 0; return 0;

Loading…
Cancel
Save