From 9e95c2424ab48350d6494236ded2bcc9ae080e2c Mon Sep 17 00:00:00 2001 From: Naresh Tanniru Date: Mon, 8 Dec 2014 16:49:22 +0530 Subject: hal: Fix for FM mute issue on start of FM record - FM audio is muted on start of record session when playback record concurrency enabled - Add support for FM playback device switch on record concurrency enabled Change-Id: I51795dedf0f32c41c6a84889bb7f62ee21713720 --- hal/audio_extn/fm.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'hal/audio_extn/fm.c') diff --git a/hal/audio_extn/fm.c b/hal/audio_extn/fm.c index b6f8689f..ed3776cc 100644 --- a/hal/audio_extn/fm.c +++ b/hal/audio_extn/fm.c @@ -34,6 +34,7 @@ #ifdef FM_ENABLED #define AUDIO_PARAMETER_KEY_HANDLE_FM "handle_fm" #define AUDIO_PARAMETER_KEY_FM_VOLUME "fm_volume" +#define AUDIO_PARAMETER_KEY_REC_PLAY_CONC "rec_play_conc_on" static struct pcm_config pcm_config_fm = { .channels = 2, @@ -280,6 +281,21 @@ void audio_extn_fm_set_parameters(struct audio_device *adev, fm_set_volume(adev, vol); } +#ifdef RECORD_PLAY_CONCURRENCY + ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_REC_PLAY_CONC, + value, sizeof(value)); + if ((ret >= 0) + && (fmmod.is_fm_running == true)) { + + if (!strncmp("true", value, sizeof("true"))) + ALOGD("Record play concurrency ON Forcing FM device reroute"); + else + ALOGD("Record play concurrency OFF Forcing FM device reroute"); + + select_devices(adev, USECASE_AUDIO_PLAYBACK_FM); + fm_set_volume(adev,fmmod.fm_volume); + } +#endif exit: ALOGV("%s: exit", __func__); } -- cgit v1.2.3