Merge "voice: fix incorrect usecase type reported to sthal"
diff --git a/hal/audio_extn/soundtrigger.c b/hal/audio_extn/soundtrigger.c
index 330c9cb..b3df579 100644
--- a/hal/audio_extn/soundtrigger.c
+++ b/hal/audio_extn/soundtrigger.c
@@ -561,7 +561,7 @@
struct stream_in *active_input = adev_get_active_input(st_dev->adev);
audio_source_t source = (active_input == NULL) ?
AUDIO_SOURCE_DEFAULT : active_input->source;
- if (voice_is_call_state_active_in_call(st_dev->adev)) {
+ if (voice_is_in_call(st_dev->adev)) {
ev_info.u.usecase.type = USECASE_TYPE_VOICE_CALL;
} else if ((st_dev->adev->mode == AUDIO_MODE_IN_COMMUNICATION ||
source == AUDIO_SOURCE_VOICE_COMMUNICATION) &&
diff --git a/hal/voice.c b/hal/voice.c
index fdca74a..230ceed 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
* Not a contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -204,6 +204,7 @@
disable_snd_device(adev, uc_info->in_snd_device);
adev->voice.lte_call = false;
+ adev->voice.in_call = false;
list_remove(&uc_info->list);
free(uc_info);
@@ -244,6 +245,8 @@
return -ENOMEM;
}
+ adev->voice.in_call = true;
+
uc_info->id = usecase_id;
uc_info->type = VOICE_CALL;
uc_info->stream.out = adev->current_call_output;
@@ -263,7 +266,6 @@
if (is_sco_out_device_type(&uc_info->device_list) && !adev->bt_sco_on) {
ALOGE("start_call: couldn't find BT SCO, SCO is not ready");
- adev->voice.in_call = false;
ret = -EIO;
goto error_start_voice;
}
@@ -725,12 +727,12 @@
{
int ret = 0;
- adev->voice.in_call = false;
ret = voice_extn_stop_call(adev);
if (ret == -ENOSYS) {
ret = voice_stop_usecase(adev, USECASE_VOICE_CALL);
}
+ adev->voice.in_call = false;
return ret;
}