summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaojun Sang <quic_xsang@quicinc.com>2022-02-16 14:39:55 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2022-05-22 21:54:47 -0700
commit84991bfc1c81ab1b6ceab44e61a21b3918bc7b75 (patch)
treec8c2f0b94c944608d67f2e160469126ff5274476
parent2543b83b0faea0488f5993ce0c3c5fe347e3ef15 (diff)
hal: split usb headset into input and output device at disconnection
USB headset is split into output and input device at connection. It doesn't happen at disconnection. Split the device at disconnection to avoid inconsistency. Change-Id: I3df746ccf4da4a632f0f3ea546618d218e70f98a
-rw-r--r--hal/AudioDevice.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/hal/AudioDevice.cpp b/hal/AudioDevice.cpp
index cabdd284..bd7afbd2 100644
--- a/hal/AudioDevice.cpp
+++ b/hal/AudioDevice.cpp
@@ -1423,7 +1423,8 @@ int AudioDevice::SetParameters(const char *kvpairs) {
pal_device_count = GetPalDeviceIds({device}, pal_device_ids);
ret = add_input_headset_if_usb_out_headset(&pal_device_count, &pal_device_ids);
if (ret) {
- free(pal_device_ids);
+ if (pal_device_ids)
+ free(pal_device_ids);
AHAL_ERR("adding input headset failed, error:%d", ret);
goto exit;
}
@@ -1612,6 +1613,13 @@ int AudioDevice::SetParameters(const char *kvpairs) {
if (device) {
pal_device_ids = (pal_device_id_t *) calloc(1, sizeof(pal_device_id_t));
pal_device_count = GetPalDeviceIds({device}, pal_device_ids);
+ ret = add_input_headset_if_usb_out_headset(&pal_device_count, &pal_device_ids);
+ if (ret) {
+ if (pal_device_ids)
+ free(pal_device_ids);
+ AHAL_ERR("adding input headset failed, error:%d", ret);
+ goto exit;
+ }
for (int i = 0; i < pal_device_count; i++) {
param_device_connection.connection_state = false;
param_device_connection.id = pal_device_ids[i];
@@ -1623,10 +1631,6 @@ int AudioDevice::SetParameters(const char *kvpairs) {
}
AHAL_INFO("pal set param sucess for device disconnect");
}
- if (pal_device_ids) {
- free(pal_device_ids);
- pal_device_ids = NULL;
- }
}
}