diff options
author | Xiaojun Sang <quic_xsang@quicinc.com> | 2022-02-16 14:39:55 +0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2022-05-22 21:54:47 -0700 |
commit | 84991bfc1c81ab1b6ceab44e61a21b3918bc7b75 (patch) | |
tree | c8c2f0b94c944608d67f2e160469126ff5274476 | |
parent | 2543b83b0faea0488f5993ce0c3c5fe347e3ef15 (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.cpp | 14 |
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; - } } } |