Merge "hal: Restore fm volume whenever enable fm usecase"

This commit is contained in:
Linux Build Service Account 2019-01-08 23:21:10 -08:00 committed by Gerrit - the friendly Code Review server
commit b52ea0c6a9
2 changed files with 10 additions and 8 deletions

View File

@ -183,6 +183,7 @@ static int32_t fm_start(struct audio_device *adev, audio_devices_t outputDevices
fm_out->usecase = USECASE_AUDIO_PLAYBACK_FM; fm_out->usecase = USECASE_AUDIO_PLAYBACK_FM;
fm_out->config = pcm_config_fm; fm_out->config = pcm_config_fm;
fm_out->devices = outputDevices; fm_out->devices = outputDevices;
fmmod.is_fm_running = true;
uc_info = (struct audio_usecase *)calloc(1, sizeof(struct audio_usecase)); uc_info = (struct audio_usecase *)calloc(1, sizeof(struct audio_usecase));
@ -239,9 +240,7 @@ static int32_t fm_start(struct audio_device *adev, audio_devices_t outputDevices
pcm_start(fmmod.fm_pcm_rx); pcm_start(fmmod.fm_pcm_rx);
pcm_start(fmmod.fm_pcm_tx); pcm_start(fmmod.fm_pcm_tx);
fmmod.is_fm_running = true;
fmmod.fm_device = fm_out->devices; fmmod.fm_device = fm_out->devices;
fm_set_volume(adev, fmmod.fm_volume, false);
ALOGD("%s: exit: status(%d)", __func__, ret); ALOGD("%s: exit: status(%d)", __func__, ret);
return 0; return 0;

View File

@ -979,6 +979,7 @@ int enable_audio_route(struct audio_device *adev,
snd_device_t snd_device; snd_device_t snd_device;
char mixer_path[MIXER_PATH_MAX_LENGTH]; char mixer_path[MIXER_PATH_MAX_LENGTH];
struct stream_out *out = NULL; struct stream_out *out = NULL;
int ret = 0;
if (usecase == NULL) if (usecase == NULL)
return -EINVAL; return -EINVAL;
@ -1008,7 +1009,14 @@ int enable_audio_route(struct audio_device *adev,
strlcpy(mixer_path, use_case_table[usecase->id], MIXER_PATH_MAX_LENGTH); strlcpy(mixer_path, use_case_table[usecase->id], MIXER_PATH_MAX_LENGTH);
platform_add_backend_name(mixer_path, snd_device, usecase); platform_add_backend_name(mixer_path, snd_device, usecase);
ALOGD("%s: apply mixer and update path: %s", __func__, mixer_path); ALOGD("%s: apply mixer and update path: %s", __func__, mixer_path);
audio_route_apply_and_update_path(adev->audio_route, mixer_path); ret = audio_route_apply_and_update_path(adev->audio_route, mixer_path);
if (!ret && usecase->id == USECASE_AUDIO_PLAYBACK_FM) {
struct str_parms *parms = str_parms_create_str("fm_restore_volume=1");
if (parms) {
audio_extn_fm_set_parameters(adev, parms);
str_parms_destroy(parms);
}
}
ALOGV("%s: exit", __func__); ALOGV("%s: exit", __func__);
return 0; return 0;
} }
@ -1470,11 +1478,6 @@ static void check_usecases_codec_backend(struct audio_device *adev,
usecase->stream.out->volume_l, usecase->stream.out->volume_l,
usecase->stream.out->volume_r); usecase->stream.out->volume_r);
} }
if (usecase->id == USECASE_AUDIO_PLAYBACK_FM) {
struct str_parms *parms = str_parms_create_str("fm_restore_volume=1");
if (parms)
audio_extn_fm_set_parameters(adev, parms);
}
} }
} }
} }