From c7c9a2d09e03491e6fe0778011dd5275960d6f44 Mon Sep 17 00:00:00 2001 From: Li Bo Date: Fri, 22 Mar 2024 21:58:41 +0800 Subject: [PATCH 1/6] feat: add usb host uac driver --- .build-test-rules.yml | 2 +- .github/workflows/upload_component.yml | 1 + .idf_build_apps.toml | 1 + host/class/uac/usb_host_uac/CHANGELOG.md | 3 + host/class/uac/usb_host_uac/CMakeLists.txt | 3 + host/class/uac/usb_host_uac/Kconfig | 24 + host/class/uac/usb_host_uac/LICENSE | 202 ++ host/class/uac/usb_host_uac/README.md | 56 + host/class/uac/usb_host_uac/idf_component.yml | 10 + host/class/uac/usb_host_uac/include/usb/uac.h | 482 ++++ .../uac/usb_host_uac/include/usb/uac_host.h | 400 ++++ .../uac/usb_host_uac/test_app/CMakeLists.txt | 11 + .../class/uac/usb_host_uac/test_app/README.md | 4 + .../usb_host_uac/test_app/main/CMakeLists.txt | 9 + .../usb_host_uac/test_app/main/new_epic.wav | Bin 0 -> 774132 bytes .../test_app/main/test_app_main.c | 57 + .../test_app/main/test_host_uac.c | 904 +++++++ .../uac/usb_host_uac/test_app/partitions.csv | 5 + .../test_app/pytest_usb_host_uac.py | 17 + .../usb_host_uac/test_app/sdkconfig.defaults | 8 + host/class/uac/usb_host_uac/uac_descriptors.c | 317 +++ host/class/uac/usb_host_uac/uac_host.c | 2105 +++++++++++++++++ 22 files changed, 4620 insertions(+), 1 deletion(-) create mode 100644 host/class/uac/usb_host_uac/CHANGELOG.md create mode 100644 host/class/uac/usb_host_uac/CMakeLists.txt create mode 100644 host/class/uac/usb_host_uac/Kconfig create mode 100644 host/class/uac/usb_host_uac/LICENSE create mode 100644 host/class/uac/usb_host_uac/README.md create mode 100644 host/class/uac/usb_host_uac/idf_component.yml create mode 100644 host/class/uac/usb_host_uac/include/usb/uac.h create mode 100644 host/class/uac/usb_host_uac/include/usb/uac_host.h create mode 100644 host/class/uac/usb_host_uac/test_app/CMakeLists.txt create mode 100644 host/class/uac/usb_host_uac/test_app/README.md create mode 100644 host/class/uac/usb_host_uac/test_app/main/CMakeLists.txt create mode 100644 host/class/uac/usb_host_uac/test_app/main/new_epic.wav create mode 100644 host/class/uac/usb_host_uac/test_app/main/test_app_main.c create mode 100644 host/class/uac/usb_host_uac/test_app/main/test_host_uac.c create mode 100644 host/class/uac/usb_host_uac/test_app/partitions.csv create mode 100644 host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py create mode 100644 host/class/uac/usb_host_uac/test_app/sdkconfig.defaults create mode 100644 host/class/uac/usb_host_uac/uac_descriptors.c create mode 100644 host/class/uac/usb_host_uac/uac_host.c diff --git a/.build-test-rules.yml b/.build-test-rules.yml index fe7c53c5..fd72f65b 100644 --- a/.build-test-rules.yml +++ b/.build-test-rules.yml @@ -6,4 +6,4 @@ device/esp_tinyusb: host/class: enable: - - if: IDF_TARGET in ["esp32s2", "esp32s3"] \ No newline at end of file + - if: IDF_TARGET in ["esp32s2", "esp32s3"] diff --git a/.github/workflows/upload_component.yml b/.github/workflows/upload_component.yml index 1a2c73d1..90a74d98 100644 --- a/.github/workflows/upload_component.yml +++ b/.github/workflows/upload_component.yml @@ -41,6 +41,7 @@ jobs: host/class/cdc/usb_host_vcp; host/class/hid/usb_host_hid; host/class/msc/usb_host_msc; + host/class/uac/usb_host_uac; host/class/uvc/usb_host_uvc; namespace: "espressif" # API token will only be available in the master branch in the main repository. diff --git a/.idf_build_apps.toml b/.idf_build_apps.toml index 2ad117c2..739fb9ec 100644 --- a/.idf_build_apps.toml +++ b/.idf_build_apps.toml @@ -4,6 +4,7 @@ paths = [ "host/class/cdc/usb_host_cdc_acm/test_app", "host/class/hid/usb_host_hid/test_app", "host/class/msc/usb_host_msc/test_app", + "host/class/uac/usb_host_uac/test_app", "host/class/uvc/usb_host_uvc/test_app", ] recursive = true diff --git a/host/class/uac/usb_host_uac/CHANGELOG.md b/host/class/uac/usb_host_uac/CHANGELOG.md new file mode 100644 index 00000000..532bcd2c --- /dev/null +++ b/host/class/uac/usb_host_uac/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0.0 + +- Initial version diff --git a/host/class/uac/usb_host_uac/CMakeLists.txt b/host/class/uac/usb_host_uac/CMakeLists.txt new file mode 100644 index 00000000..6f198ee3 --- /dev/null +++ b/host/class/uac/usb_host_uac/CMakeLists.txt @@ -0,0 +1,3 @@ +idf_component_register( SRCS "uac_descriptors.c" "uac_host.c" + INCLUDE_DIRS "include" + PRIV_REQUIRES usb esp_ringbuf) diff --git a/host/class/uac/usb_host_uac/Kconfig b/host/class/uac/usb_host_uac/Kconfig new file mode 100644 index 00000000..011de6aa --- /dev/null +++ b/host/class/uac/usb_host_uac/Kconfig @@ -0,0 +1,24 @@ +menu "USB Host UAC" + config PRINTF_UAC_CONFIGURATION_DESCRIPTOR + bool "Print UAC Configuration Descriptor" + default n + help + Print UAC Configuration Descriptor to console. + config UAC_FREQ_NUM_MAX + int "Max Number of Frequencies each Alt-interface supports" + default 4 + help + Max Number of Frequencies each Alt-interface supports. If the device supports more frequencies, + the driver will only use the first UAC_FREQ_NUM_MAX frequencies. + config UAC_NUM_ISOC_URBS + int "Number of UAC ISOC URBs" + default 3 + help + Number of UAC ISOC URBs to use. Fewer URBs could cause audio dropouts. + More URBs will increase the RAM usage. + config UAC_NUM_PACKETS_PER_URB + int "Number of Packets per UAC ISOC URB" + default 3 + help + Number of Packets per UAC ISOC URB. It limits the minimum packets each transfer will send. +endmenu # "USB Host UAC" diff --git a/host/class/uac/usb_host_uac/LICENSE b/host/class/uac/usb_host_uac/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/host/class/uac/usb_host_uac/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/host/class/uac/usb_host_uac/README.md b/host/class/uac/usb_host_uac/README.md new file mode 100644 index 00000000..e610b7d1 --- /dev/null +++ b/host/class/uac/usb_host_uac/README.md @@ -0,0 +1,56 @@ +# USB Host UAC Driver + +[![Component Registry](https://components.espressif.com/components/espressif/usb_host_uac/badge.svg)](https://components.espressif.com/components/espressif/usb_host_uac) + +This directory contains an implementation of a USB UAC Driver implemented on top of the [USB Host Library](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-reference/peripherals/usb_host.html). + +UAC driver allows access to UAC 1.0 devices. + +## Usage + +The following steps outline the typical API call pattern of the UAC Class Driver: + +1. Install the USB Host Library via `usb_host_install()` +2. Install the UAC driver via `uac_host_install()` +3. When the new (logic) UAC device is connected, the driver event callback will be called with USB device address and event: + - `UAC_HOST_DRIVER_EVENT_TX_CONNECTED` + - `UAC_HOST_DRIVER_EVENT_RX_CONNECTED` +4. To open/close the UAC device with USB device address and interface number: + - `uac_host_device_open()` + - `uac_host_device_close()` +5. To get the device-supported audio format use: + - `uac_host_get_device_info()` + - `uac_host_get_device_alt_param()` +6. To enable/disable data streaming with specific audio format use: + - `uac_host_device_start()` + - `uac_host_device_stop()` +7. To suspend/resume data streaming use: + - `uac_host_device_suspend()` + - `uac_host_device_resume()` +8. To control the volume/mute use: + - `uac_host_device_set_mute()` +9. To control the volume use: + - `uac_host_device_set_volume()` or `uac_host_device_set_volume_db()` +10. After the uac device is opened, the device event callback will be called with the following events: + - UAC_HOST_DEVICE_EVENT_RX_DONE + - UAC_HOST_DEVICE_EVENT_TX_DONE + - UAC_HOST_DEVICE_EVENT_TRANSFER_ERROR + - UAC_HOST_DRIVER_EVENT_DISCONNECTED +11. When the `UAC_HOST_DRIVER_EVENT_DISCONNECTED` event is called, the device should be closed via `uac_host_device_close()` +12. The UAC driver can be uninstalled via `uac_host_uninstall()` + +> Note: For physical device with both microphone and speaker, the driver will treat it as two separate logic devices. + +> The `UAC_HOST_DRIVER_EVENT_TX_CONNECTED` and `UAC_HOST_DRIVER_EVENT_RX_CONNECTED` event will be called for the device. + +## Known issues + +- Empty + +## Examples + +- For an example, refer to [usb_audio_player](https://github.com/espressif/esp-iot-solution/tree/master/examples/usb/host/usb_audio_player) + +## Supported Devices + +- UAC Driver supports any UAC 1.0 compatible device. \ No newline at end of file diff --git a/host/class/uac/usb_host_uac/idf_component.yml b/host/class/uac/usb_host_uac/idf_component.yml new file mode 100644 index 00000000..f732b7fa --- /dev/null +++ b/host/class/uac/usb_host_uac/idf_component.yml @@ -0,0 +1,10 @@ +## IDF Component Manager Manifest File +version: "1.0.0" +description: USB Host UAC driver +url: https://github.com/espressif/esp-usb/tree/master/host/class/uac/usb_host_uac +dependencies: + idf: ">=4.4" +targets: + - esp32s2 + - esp32s3 + - esp32p4 diff --git a/host/class/uac/usb_host_uac/include/usb/uac.h b/host/class/uac/usb_host_uac/include/usb/uac.h new file mode 100644 index 00000000..09032482 --- /dev/null +++ b/host/class/uac/usb_host_uac/include/usb/uac.h @@ -0,0 +1,482 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include "sdkconfig.h" +#include "usb/usb_types_ch9.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/********************************* Refer audio10.pdf ***************************************************/ + +/** + * @brief Audio Interface Subclass Codes + * + * @see Table A-2 of audio10.pdf + */ +typedef enum { + UAC_SUBCLASS_UNDEFINED = 0x00, + UAC_SUBCLASS_AUDIOCONTROL = 0x01, + UAC_SUBCLASS_AUDIOSTREAMING = 0x02, + UAC_SUBCLASS_MIDISTREAMING = 0x03, +} uac_subclass_t; + +/** + * @brief Audio Interface Protocol Codes + * + * @see Table A-3 of audio10.pdf + */ +typedef enum { + UAC_PROTOCOL_UNDEFINED = 0x00, + UAC_PROTOCOL_v20 = 0x20, // refer UAC v2.0 +} uac_protocol_t; + +/** + * @brief Audio Class-Specific Descriptor Types + * + * @see Table A-4 of audio10.pdf + */ +typedef enum { + UAC_CS_UNDEFINED = 0x20, + UAC_CS_DEVICE = 0x21, + UAC_CS_CONFIGURATION = 0x22, + UAC_CS_STRING = 0x23, + UAC_CS_INTERFACE = 0x24, + UAC_CS_ENDPOINT = 0x25 +} uac_cs_descriptor_type_t; + +/** + * @brief Audio Class-Specific AC Interface Descriptor Subtypes + * + * @see Table A-5 of audio10.pdf + */ +typedef enum { + UAC_AC_DESCRIPTOR_UNDEFINED = 0x00, + UAC_AC_HEADER = 0x01, + UAC_AC_INPUT_TERMINAL = 0x02, + UAC_AC_OUTPUT_TERMINAL = 0x03, + UAC_AC_MIXER_UNIT = 0x04, + UAC_AC_SELECTOR_UNIT = 0x05, + UAC_AC_FEATURE_UNIT = 0x06, + UAC_AC_PROCESSING_UNIT = 0x07, + UAC_AC_EXTENSION_UNIT = 0x08 +} uac_ac_descriptor_subtype_t; + +/** + * @brief Audio Class-Specific AS Interface Descriptor Subtypes + * + * @see Table A-6 of audio10.pdf + */ +typedef enum { + UAC_AS_DESCRIPTOR_UNDEFINED = 0x00, + UAC_AS_GENERAL = 0x01, + UAC_AS_FORMAT_TYPE = 0x02, + UAC_AS_FORMAT_SPECIFIC = 0x03 +} uac_as_descriptor_subtype_t; + +/** + * @brief Processing Unit Process Types + * + * @see Table A-7 of audio10.pdf + */ +typedef enum { + UAC_PROCESS_UNDEFINED = 0x00, + UAC_UP_DOWNMIX_PROCESS = 0x01, + UAC_DOLBY_PROLOGIC_PROCESS = 0x02, + UAC_3D_STEREO_EXTENDER_PROCESS = 0x03, + UAC_REVERBERATION_PROCESS = 0x04, + UAC_CHORUS_PROCESS = 0x05, + UAC_DYN_RANGE_COMP_PROCESS = 0x06 +} uac_process_type_t; + +/** + * @brief Audio Class-Specific Endpoint Descriptor Subtypes + * + * @see Table A-8 of audio10.pdf + */ +typedef enum { + UAC_EP_DESCRIPTOR_UNDEFINED = 0x00, + UAC_EP_GENERAL = 0x01 +} uac_ep_descriptor_subtype_t; + +/** + * @brief Audio Class-Specific Request Codes + * + * @see Table A-9 of audio10.pdf + */ +typedef enum { + UAC_REQUEST_UNDEFINED = 0x00, + UAC_SET_CUR = 0x01, + UAC_GET_CUR = 0x81, + UAC_SET_MIN = 0x02, + UAC_GET_MIN = 0x82, + UAC_SET_MAX = 0x03, + UAC_GET_MAX = 0x83, + UAC_SET_RES = 0x04, + UAC_GET_RES = 0x84, + UAC_SET_MEM = 0x05, + UAC_GET_MEM = 0x85, + UAC_GET_STAT = 0xFF +} uac_request_code_t; + +/********************************* A.10 Control Selector Codes ****************************/ + +/** + * @brief Terminal Control Selectors + * + * @see Table A-10 of audio10.pdf + */ +typedef enum { + UAC_TE_CONTROL_UNDEFINED = 0x00, + UAC_COPY_PROTECT_CONTROL = 0x01 +} uac_te_control_selector_t; + +/** + * @brief Feature Unit Control Selectors + * + * @see Table A-11 of audio10.pdf + */ +typedef enum { + UAC_FU_CONTROL_UNDEFINED = 0x00, + UAC_MUTE_CONTROL = 0x01, + UAC_VOLUME_CONTROL = 0x02, + UAC_BASS_CONTROL = 0x03, + UAC_MID_CONTROL = 0x04, + UAC_TREBLE_CONTROL = 0x05, + UAC_GRAPHIC_EQUALIZER_CONTROL = 0x06, + UAC_AUTOMATIC_GAIN_CONTROL = 0x07, + UAC_DELAY_CONTROL = 0x08, + UAC_BASS_BOOST_CONTROL = 0x09, + UAC_LOUDNESS_CONTROL = 0x0A +} uac_fu_control_selector_t; + +/******************************** A.10.3 Processing Unit Control Selectors *********************/ + +/** + * @brief UP/DOWNMIX Processing Unit Control Selectors + * + * @see Table A-12 of audio10.pdf + */ +typedef enum { + UAC_UD_CONTROL_UNDEFINED = 0x00, + UAC_UD_ENABLE_CONTROL = 0x01, + UAC_UD_MODE_SELECT_CONTROL = 0x02 +} uac_ud_control_selector_t; + +/** + * @brief Dolby Prologic Processing Unit Control Selectors + * + * @see Table A-13 of audio10.pdf + */ +typedef enum { + UAC_DP_CONTROL_UNDEFINED = 0x00, + UAC_DP_ENABLE_CONTROL = 0x01, + UAC_DP_MODE_SELECT_CONTROL = 0x02 +} uac_dp_control_selector_t; + +/** + * @brief 3D Stereo Extender Processing Unit Control Selectors + * + * @see Table A-14 of audio10.pdf + */ +typedef enum { + UAC_3DSE_CONTROL_UNDEFINED = 0x00, + UAC_3DSE_ENABLE_CONTROL = 0x01, + UAC_3DSE_SPACIOUSNESS_CONTROL = 0x03 +} uac_3dse_control_selector_t; + +/** + * @brief Reverberation Processing Unit Control Selectors + * + * @see Table A-15 of audio10.pdf + */ +typedef enum { + UAC_RV_CONTROL_UNDEFINED = 0x00, + UAC_RV_ENABLE_CONTROL = 0x01, + UAC_REVERB_LEVEL_CONTROL = 0x02, + UAC_REVERB_TIME_CONTROL = 0x03, + UAC_REVERB_FEEDBACK_CONTROL = 0x04 +} uac_rv_control_selector_t; + +/** + * @brief Chorus Processing Unit Control Selectors + * + * @see Table A-16 of audio10.pdf + */ +typedef enum { + UAC_CH_CONTROL_UNDEFINED = 0x00, + UAC_CH_ENABLE_CONTROL = 0x01, + UAC_CHORUS_LEVEL_CONTROL = 0x02, + UAC_CHORUS_RATE_CONTROL = 0x03, + UAC_CHORUS_DEPTH_CONTROL = 0x04 +} uac_ch_control_selector_t; + +/** + * @brief Dynamic Range Compressor Processing Unit Control Selectors + * + * @see Table A-17 of audio10.pdf + */ +typedef enum { + UAC_DR_CONTROL_UNDEFINED = 0x00, + UAC_DR_ENABLE_CONTROL = 0x01, + UAC_COMPRESSION_RATE_CONTROL = 0x02, + UAC_MAXAMPL_CONTROL = 0x03, + UAC_THRESHOLD_CONTROL = 0x04, + UAC_ATTACK_TIME = 0x05, + UAC_RELEASE_TIME = 0x06 +} uac_dr_control_selector_t; + +/******************************** A.10.4 Extension Unit Control Selectors *********************/ + +/** + * @brief Extension Unit Control Selectors + * + * @see Table A-18 of audio10.pdf + * + */ +typedef enum { + UAC_XU_CONTROL_UNDEFINED = 0x00, + UAC_XU_ENABLE_CONTROL = 0x01 +} uac_xu_control_selector_t; + +/******************************** A.10.5 Endpoint Control Selectors ****************************/ + +/** + * @brief Endpoint Control Selectors + * + * @see Table A-19 of audio10.pdf + */ +typedef enum { + UAC_EP_CONTROL_UNDEFINED = 0x00, + UAC_SAMPLING_FREQ_CONTROL = 0x01, + UAC_PITCH_CONTROL = 0x02 +} uac_ep_control_selector_t; + +/** + * @brief Feature Unit Control Position + * + * @see Table 4-7 of audio10.pdf + */ +typedef enum { + UAC_FU_CONTROL_POS_MUTE = 0x0001, + UAC_FU_CONTROL_POS_VOLUME = 0x0002, + UAC_FU_CONTROL_POS_BASS = 0x0004, + UAC_FU_CONTROL_POS_MID = 0x0008, + UAC_FU_CONTROL_POS_TREBLE = 0x0010, + UAC_FU_CONTROL_POS_GRAPHIC_EQUALIZER = 0x0020, + UAC_FU_CONTROL_POS_AUTOMATIC_GAIN = 0x0040, + UAC_FU_CONTROL_POS_DELAY = 0x0080, + UAC_FU_CONTROL_POS_BASS_BOOST = 0x0100, + UAC_FU_CONTROL_POS_LOUDNESS = 0x0200, +} uac_fu_control_pos_t; + +/******************************** Refer termt10.pdf ***************************************************/ + +/** +* @brief USB Terminal Types +* +* @see Table 2-1 of termt10.pdf +*/ +typedef enum { + UAC_USB_TERMINAL_TYPE_USB_UNDEFINED = 0x0100, + UAC_USB_TERMINAL_TYPE_USB_STREAMING = 0x0101, + UAC_USB_TERMINAL_TYPE_VENDOR_SPECIFIC = 0x01FF +} uac_usb_terminal_type_t; + +/** +* @brief Input Terminal Types +* +* @see Table 2-2 of termt10.pdf +*/ +typedef enum { + UAC_INPUT_TERMINAL_UNDEFINED = 0x0200, + UAC_INPUT_TERMINAL_MICROPHONE = 0x0201, + UAC_INPUT_TERMINAL_DESKTOP_MICROPHONE = 0x0202, + UAC_INPUT_TERMINAL_PERSONAL_MICROPHONE = 0x0203, + UAC_INPUT_TERMINAL_OMNI_DIRECTIONAL_MICROPHONE = 0x0204, + UAC_INPUT_TERMINAL_MICROPHONE_ARRAY = 0x0205, + UAC_INPUT_TERMINAL_PROCESSING_MICROPHONE_ARRAY = 0x0206 +} uac_input_terminal_type_t; + +/** + * @brief Output Terminal Types + * + * @see Table 2-3 of termt10.pdf + */ +typedef enum { + UAC_OUTPUT_TERMINAL_UNDEFINED = 0x0300, + UAC_OUTPUT_TERMINAL_SPEAKER = 0x0301, + UAC_OUTPUT_TERMINAL_HEADPHONES = 0x0302, + UAC_OUTPUT_TERMINAL_HEAD_MOUNTED_DISPLAY_AUDIO = 0x0303, + UAC_OUTPUT_TERMINAL_DESKTOP_SPEAKER = 0x0304, + UAC_OUTPUT_TERMINAL_ROOM_SPEAKER = 0x0305, + UAC_OUTPUT_TERMINAL_COMMUNICATION_SPEAKER = 0x0306, + UAC_OUTPUT_TERMINAL_LOW_FREQUENCY_EFFECTS_SPEAKER = 0x0307 +} uac_output_terminal_type_t; + +/******************************** Refer frmts10.pdf ***************************************************/ + +/** + * @brief Audio Data Format Type I Codes + * + * @see Table A-1 of frmts10.pdf + */ +typedef enum { + UAC_TYPE_I_UNDEFINED = 0x0000, + UAC_TYPE_I_PCM = 0x0001, + UAC_TYPE_I_PCM8 = 0x0002, + UAC_TYPE_I_IEEE_FLOAT = 0x0003, + UAC_TYPE_I_ALAW = 0x0004, + UAC_TYPE_I_MULAW = 0x0005 +} uac_type_i_format_t; + +/** + * @brief Format Type Codes + * + * @see Table A-4 of frmts10.pdf + */ +typedef enum { + UAC_FORMAT_TYPE_UNDEFINED = 0x00, + UAC_FORMAT_TYPE_I = 0x01, + UAC_FORMAT_TYPE_II = 0x02, + UAC_FORMAT_TYPE_III = 0x03 +} uac_format_type_t; + +/** + * @brief Audio Class-Specific Interface Descriptor Common Header + * + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; +} __attribute__((packed)) uac_desc_header_t; + +/** + * @brief Audio Class-Specific AC Interface Header Descriptor (bInCollection=2) + * + * @see Table 4-2 of audio10.pdf + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint16_t bcdADC; + uint16_t wTotalLength; + uint8_t bInCollection; + uint8_t baInterfaceNr[2]; +} __attribute__((packed)) uac_ac_header_desc_t; + +/** + * @brief Audio Class-Specific AC Input Terminal Descriptor + * + * @see Table 4-3 of audio10.pdf + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bTerminalID; + uint16_t wTerminalType; + uint8_t bAssocTerminal; + uint8_t bNrChannels; + uint16_t wChannelConfig; + uint8_t iChannelNames; + uint8_t iTerminal; +} __attribute__((packed)) uac_ac_input_terminal_desc_t; + +/** + * @brief Audio Class-Specific AC Output Terminal Descriptor + * + * @see Table 4-4 of audio10.pdf + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bTerminalID; + uint16_t wTerminalType; + uint8_t bAssocTerminal; + uint8_t bSourceID; + uint8_t iTerminal; +} __attribute__((packed)) uac_ac_output_terminal_desc_t; + +/** + * @brief Audio Class-Specific AC Feature Unit Descriptor (ch=2, bControlSize=2) + * + * @see Table 4-7 of audio10.pdf + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bUnitID; + uint8_t bSourceID; + uint8_t bControlSize; + uint8_t bmaControls[3 * 2]; // 2 channels + channel 0, 2 bytes each + uint8_t iFeature; +} __attribute__((packed)) uac_ac_feature_unit_desc_t; + +/** + * @brief Audio Class-Specific AS General Descriptor + * + * @see Table 4-19 of audio10.pdf + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bTerminalLink; + uint8_t bDelay; + uint16_t wFormatTag; +} __attribute__((packed)) uac_as_general_desc_t; + +#define UAC_FREQ_NUM_MAX CONFIG_UAC_FREQ_NUM_MAX +/** + * @brief Audio Class-Specific AS Type I Format Type Descriptor + * + * @see Table 2-1 of frmts10.pdf + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bFormatType; + uint8_t bNrChannels; + uint8_t bSubframeSize; + uint8_t bBitResolution; + uint8_t bSamFreqType; + uint8_t tSamFreq[3 * UAC_FREQ_NUM_MAX]; +} __attribute__((packed)) uac_as_type_I_format_desc_t; + +/** + * @brief Audio Class-Specific AS Isochronous Audio Data Endpoint Descriptor + * + * @see Table 4-21 of audio10.pdf + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bmAttributes; + uint8_t bLockDelayUnits; + uint16_t wLockDelay; +} __attribute__((packed)) uac_as_cs_ep_desc_t; + +/** + * @brief Print UAC device full configuration descriptor + * + * @param cfg_desc + */ +void print_uac_descriptors(const usb_config_desc_t *cfg_desc); + +#ifdef __cplusplus +} +#endif //__cplusplus diff --git a/host/class/uac/usb_host_uac/include/usb/uac_host.h b/host/class/uac/usb_host_uac/include/usb/uac_host.h new file mode 100644 index 00000000..f9733f9b --- /dev/null +++ b/host/class/uac/usb_host_uac/include/usb/uac_host.h @@ -0,0 +1,400 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include +#include "esp_err.h" +#include "uac.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief USB UAC HOST string descriptor maximal length + * + * The maximum possible number of characters in an embedded string is device specific. + * For USB devices, the maximum string length is 126 wide characters (not including the terminating NULL character). + * This is a length, which is available to upper level application during getting information + * of UAC Device with 'uac_host_get_device_info' call. + * + * To decrease memory usage 32 wide characters (64 bytes per every string) is used. +*/ +#define UAC_STR_DESC_MAX_LENGTH (32) + +/** + * @brief Flags to control stream work flow + * + * FLAG_STREAM_SUSPEND_AFTER_START: do not start stream transfer during start, only claim interface and prepare memory + * @note User should call uac_host_device_resume to start stream transfer when needed +*/ +#define FLAG_STREAM_SUSPEND_AFTER_START (1 << 0) + +typedef struct uac_interface *uac_host_device_handle_t; /*!< Logic Device Handle. Handle to a particular UAC interface */ + +// ------------------------ USB UAC Host events -------------------------------- +/** + * @brief USB UAC HOST Driver event id +*/ +typedef enum { + UAC_HOST_DRIVER_EVENT_RX_CONNECTED = 0x00, /*!< UAC RX Device has been found in connected USB device */ + UAC_HOST_DRIVER_EVENT_TX_CONNECTED, /*!< UAC TX Device has been found in connected USB device */ +} uac_host_driver_event_t; + +/** + * @brief USB UAC Device (Interface) event id +*/ +typedef enum { + UAC_HOST_DEVICE_EVENT_RX_DONE = 0x00, /*!< RX Done: the receive buffer data size exceeds the threshold */ + UAC_HOST_DEVICE_EVENT_TX_DONE, /*!< TX Done: the transmit buffer data size falls below the threshold */ + UAC_HOST_DEVICE_EVENT_TRANSFER_ERROR, /*!< UAC Device transfer error */ + UAC_HOST_DRIVER_EVENT_DISCONNECTED, /*!< UAC Device has been disconnected */ +} uac_host_device_event_t; + +// ------------------------ USB UAC Host events callbacks ----------------------------- +/** + * @brief USB UAC driver event callback. + * + * @param[in] addr USB Address of connected UAC device + * @param[in] iface_num UAC Interface Number + * @param[in] event UAC driver event + * @param[in] arg User argument from UAC driver configuration structure +*/ +typedef void (*uac_host_driver_event_cb_t)(uint8_t addr, uint8_t iface_num, + const uac_host_driver_event_t event, void *arg); + +/** + * @brief USB UAC logic device/interface event callback. + * + * @param[in] uac_device_handle UAC device handle (UAC Interface) + * @param[in] event UAC device event + * @param[in] arg User argument +*/ +typedef void (*uac_host_device_event_cb_t)(uac_host_device_handle_t uac_device_handle, + const uac_host_device_event_t event, void *arg); + +/** + * @brief USB UAC host class descriptor print callback + * + * @param[in] desc Pointer to the USB configuration descriptor + * @param[in] class Class of the UAC device + * @param[in] subclass Subclass of the UAC device + * @param[in] protocol Protocol of the UAC device + * + */ +typedef void (*print_class_descriptor_with_context_cb)(const usb_standard_desc_t *desc, + uint8_t class, uint8_t subclass, uint8_t protocol); + +/** + * @brief Stream type + * +*/ +typedef enum { + UAC_STREAM_TX = 0, /*!< usb audio TX (eg. speaker stream) */ + UAC_STREAM_RX, /*!< usb audio RX (eg. microphone stream) */ + UAC_STREAM_MAX, /*!< max stream type */ +} uac_host_stream_t; + +/** + * @brief USB UAC logic device/interface information +*/ +typedef struct { + uac_host_stream_t type; /*!< Stream type */ + uint8_t iface_num; /*!< UAC Interface Number */ + uint8_t iface_alt_num; /*!< UAC Interface Alternate Setting Total Number */ + uint8_t addr; /*!< USB Address of connected UAC device */ + uint16_t VID; /*!< Vendor ID */ + uint16_t PID; /*!< Product ID */ + wchar_t iManufacturer[UAC_STR_DESC_MAX_LENGTH]; /*!< Manufacturer string */ + wchar_t iProduct[UAC_STR_DESC_MAX_LENGTH]; /*!< Product string */ + wchar_t iSerialNumber[UAC_STR_DESC_MAX_LENGTH]; /*!< Serial Number string */ +} uac_host_dev_info_t; + +/** + * @brief USB UAC Interface alternate information + * +*/ +typedef struct { + uint8_t format; /*!< audio stream format, currently only support 1 - PCM */ + uint8_t channels; /*!< audio stream channels */ + uint8_t bit_resolution; /*!< audio stream bit resolution */ + uint8_t sample_freq_type; /*!< audio stream sample frequency type, 0 - continuous, 1,2,3 - discrete */ + union { + uint32_t sample_freq[UAC_FREQ_NUM_MAX]; /*!< audio stream sample frequency, first N discrete sample frequency */ + struct { + uint32_t sample_freq_lower; /*!< audio stream sample frequency lower */ + uint32_t sample_freq_upper; /*!< audio stream sample frequency upper */ + }; + }; +} uac_host_dev_alt_param_t; + +/** + * @brief UAC driver configuration structure. +*/ +typedef struct { + bool create_background_task; /*!< When set to true, background task handling USB events is created. + Otherwise user has to periodically call uac_host_handle_events function */ + size_t task_priority; /*!< Task priority of created background task */ + size_t stack_size; /*!< Stack size of created background task */ + BaseType_t core_id; /*!< Select core on which background task will run or tskNO_AFFINITY */ + uac_host_driver_event_cb_t callback; /*!< Callback invoked when UAC driver event occurs. Must not be NULL. */ + void *callback_arg; /*!< User provided argument passed to callback */ +} uac_host_driver_config_t; + +/** + * @brief UAC logic device/interface configuration structure + * +*/ +typedef struct { + uint8_t addr; /*!< USB Address of connected physical device */ + uint8_t iface_num; /*!< UAC Interface Number */ + uint32_t buffer_size; /*!< Audio buffer size */ + uint32_t buffer_threshold; /*!< Audio buffer threshold */ + uac_host_device_event_cb_t callback; /*!< Callback invoked when UAC device event occurs */ + void *callback_arg; /*!< User provided argument passed to callback */ +} uac_host_device_config_t; + +/** + * @brief UAC stream configuration structure + * +*/ +typedef struct { + uint8_t channels; /*!< Audio channel number */ + uint8_t bit_resolution; /*!< Audio bit resolution */ + uint32_t sample_freq; /*!< Audio sample resolution */ + uint16_t flags; /*!< Control flags */ +} uac_host_stream_config_t; + +// ----------------------------- Public --------------------------------------- +/** + * @brief Install USB Host UAC Class driver + * + * @note This function must be called after usb_host_install + * + * @param[in] config UAC driver configuration structure + * @return esp_err_r + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if UAC driver is already installed + * - ESP_ERR_INVALID_ARG if the configuration is invalid + * - ESP_ERR_NO_MEM if memory allocation failed + * +*/ +esp_err_t uac_host_install(const uac_host_driver_config_t *config); + +/** + * @brief Uninstall USB Host UAC Class driver + * + * @note This function can only be called after all open devices have been closed + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if UAC driver is not installed or device is still opened + */ +esp_err_t uac_host_uninstall(void); + +/** + * @brief Open a UAC logic device/interface + * + * @param[in] config Pointer to UAC device configuration structure + * @param[out] uac_dev_handle Pointer to UAC device handle + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if UAC driver is not installed + * - ESP_ERR_INVALID_ARG if the configuration is invalid + * - ESP_ERR_NO_MEM if memory allocation failed + * - ESP_ERR_NOT_SUPPORTED if the UAC version is not supported + */ +esp_err_t uac_host_device_open(const uac_host_device_config_t *config, uac_host_device_handle_t *uac_dev_handle); + +/** + * @brief Close a UAC logic device/interface + * + * @param[in] uac_dev_handle UAC device handle + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if UAC driver is not installed + * - ESP_ERR_INVALID_ARG if the device handle is invalid + */ +esp_err_t uac_host_device_close(uac_host_device_handle_t uac_dev_handle); + +/** + * @brief Get UAC device information + * + * @param[in] uac_dev_handle UAC device handle + * @param[out] uac_dev_info Pointer to UAC device information structure + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if UAC device is not opened + * - ESP_ERR_INVALID_ARG if the device handle is invalid + */ +esp_err_t uac_host_get_device_info(uac_host_device_handle_t uac_dev_handle, uac_host_dev_info_t *uac_dev_info); + +/** + * @brief Get UAC device alt setting parameters by interface alternate index + * + * @param[in] uac_dev_handle UAC device handle + * @param[in] iface_alt Interface alt setting number + * @param[out] uac_alt_param Pointer to UAC device alt setting parameters + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if UAC device is not opened + * - ESP_ERR_INVALID_ARG if the device handle or alt setting number is invalid + */ +esp_err_t uac_host_get_device_alt_param(uac_host_device_handle_t uac_dev_handle, uint8_t iface_alt, uac_host_dev_alt_param_t *uac_alt_param); + +/** + * @brief Print the UAC device information and alternate parameters + * + * @param[in] uac_dev_handle UAC device handle + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if UAC device is not opened + */ +esp_err_t uac_host_printf_device_param(uac_host_device_handle_t uac_dev_handle); + +/** + * @brief UAC Host USB event handler + * + * If UAC Host install was made with create_background_task=false configuration, + * application needs to handle USB Host events itself. + * Do not used if UAC host install was made with create_background_task=true configuration + * + * @param[in] timeout Timeout in ticks. For milliseconds, please use 'pdMS_TO_TICKS()' macros + * @return esp_err_t + * - ESP_OK on success (keep calling this function) + * - ESP_FAIL if the event handling is finished (stop calling this function) + */ +esp_err_t uac_host_handle_events(uint32_t timeout); + +// ------------------------ USB UAC Host driver API ---------------------------- +/** + * @brief Start a UAC stream with specific stream configuration (channels, bit resolution, sample frequency) + * + * @note set flags FLAG_STREAM_SUSPEND_AFTER_START to suspend stream after start + * + * @param[in] uac_dev_handle UAC device handle + * @param[in] stream_config Pointer to UAC stream configuration structure + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_ARG if the device handle or stream configuration is invalid + * - ESP_ERR_NOT_FOUND if the stream configuration is not supported + * - ESP_ERR_INVALID_STATE if the device is not in the right state + * - ESP_ERR_NO_MEM if memory allocation failed + * - ESP_ERR_TIMEOUT if the control transfer timeout + */ +esp_err_t uac_host_device_start(uac_host_device_handle_t uac_dev_handle, const uac_host_stream_config_t *stream_config); + +/** + * @brief Suspend a UAC stream + * + * @param[in] uac_dev_handle UAC device handle + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_ARG if the device handle is invalid + * - ESP_ERR_INVALID_STATE if the device is not in the right state + */ +esp_err_t uac_host_device_suspend(uac_host_device_handle_t uac_dev_handle); + +/** + * @brief Resume a UAC stream with same stream configuration + * + * @param[in] uac_dev_handle UAC device handle + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_ARG if the device handle is invalid + * - ESP_ERR_INVALID_STATE if the device is not in the right state + */ +esp_err_t uac_host_device_resume(uac_host_device_handle_t uac_dev_handle); + +/** + * @brief Stop a UAC stream, stream resources will be released + * + * @param[in] uac_dev_handle UAC device handle + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_ARG if the device handle is invalid + * - ESP_ERR_INVALID_STATE if the device is not in the right state + */ +esp_err_t uac_host_device_stop(uac_host_device_handle_t uac_dev_handle); + +/** + * @brief Read data from UAC stream buffer, only available after stream started + * + * @param[in] uac_dev_handle UAC device handle + * @param[out] data Pointer to the buffer to store the data + * @param[in] size Number of bytes to read + * @param[out] bytes_read Pointer to the number of bytes read + * @param[in] timeout Timeout in ticks. For milliseconds, please use 'pdMS_TO_TICKS()' macros + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_ARG if the device handle or data is invalid + * - ESP_ERR_INVALID_STATE if the device is not in the right state + */ +esp_err_t uac_host_device_read(uac_host_device_handle_t uac_dev_handle, uint8_t *data, uint32_t size, + uint32_t *bytes_read, uint32_t timeout); + +/** + * @brief Write data to UAC stream buffer, only can be called after stream started + * + * @note The data will be sent to internal ringbuffer before function return, + * the actual data transfer is scheduled by the background task. + * + * @param[in] uac_dev_handle UAC device handle + * @param[in] data Pointer to the data buffer + * @param[in] size Number of bytes to write + * @param[in] timeout Timeout in ticks. For milliseconds, please use 'pdMS_TO_TICKS()' macros + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_ARG if the device handle or data is invalid + * - ESP_ERR_INVALID_STATE if the device is not in the right state + * - ESP_FAIL if write failed or timeout +*/ +esp_err_t uac_host_device_write(uac_host_device_handle_t uac_dev_handle, uint8_t *data, uint32_t size, + uint32_t timeout); + +/** + * @brief Mute or un-mute the UAC device + * @param[in] iface Pointer to UAC interface structure + * @param[in] mute True to mute, false to unmute + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if the device is not ready or active + * - ESP_ERR_INVALID_ARG if the device handle is invalid + * - ESP_ERR_NOT_SUPPORTED if the device does not support mute control + * - ESP_ERR_TIMEOUT if the control timed out + */ +esp_err_t uac_host_device_set_mute(uac_host_device_handle_t uac_dev_handle, bool mute); + +/** + * @brief Set the volume of the UAC device + * @param[in] iface Pointer to UAC interface structure + * @param[in] volume Volume to set, 0-100 + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if the device is not ready or active + * - ESP_ERR_INVALID_ARG if the device handle is invalid or volume is out of range + * - ESP_ERR_NOT_SUPPORTED if the device does not support volume control + * - ESP_ERR_TIMEOUT if the control timed out + */ +esp_err_t uac_host_device_set_volume(uac_host_device_handle_t uac_dev_handle, uint8_t volume); + +/** + * @brief Set the volume of the UAC device in dB + * @param[in] iface Pointer to UAC interface structure + * @param[in] volume_db Volume to set, db + * @return esp_err_t + * - ESP_OK on success + * - ESP_ERR_INVALID_STATE if the device is not ready or active + * - ESP_ERR_INVALID_ARG if the device handle is invalid + * - ESP_ERR_NOT_SUPPORTED if the device does not support volume control + * - ESP_ERR_TIMEOUT if the control timed out + */ +esp_err_t uac_host_device_set_volume_db(uac_host_device_handle_t uac_dev_handle, uint32_t volume_db); + +#ifdef __cplusplus +} +#endif //__cplusplus diff --git a/host/class/uac/usb_host_uac/test_app/CMakeLists.txt b/host/class/uac/usb_host_uac/test_app/CMakeLists.txt new file mode 100644 index 00000000..52a3bdb9 --- /dev/null +++ b/host/class/uac/usb_host_uac/test_app/CMakeLists.txt @@ -0,0 +1,11 @@ +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) +include($ENV{IDF_PATH}/tools/cmake/project.cmake) + +set(EXTRA_COMPONENT_DIRS + ../../usb_host_uac + ${EXTRA_COMPONENT_DIRS} + ) + +project(test_app_usb_host_uac) \ No newline at end of file diff --git a/host/class/uac/usb_host_uac/test_app/README.md b/host/class/uac/usb_host_uac/test_app/README.md new file mode 100644 index 00000000..2aeb7b47 --- /dev/null +++ b/host/class/uac/usb_host_uac/test_app/README.md @@ -0,0 +1,4 @@ +| Supported Targets | ESP32-S2 | ESP32-S3 | +| ----------------- | -------- | -------- | + +# USB: UAC Class test application \ No newline at end of file diff --git a/host/class/uac/usb_host_uac/test_app/main/CMakeLists.txt b/host/class/uac/usb_host_uac/test_app/main/CMakeLists.txt new file mode 100644 index 00000000..0cf24d2e --- /dev/null +++ b/host/class/uac/usb_host_uac/test_app/main/CMakeLists.txt @@ -0,0 +1,9 @@ +include($ENV{IDF_PATH}/tools/cmake/version.cmake) + +idf_component_register(SRC_DIRS . + INCLUDE_DIRS . + REQUIRES unity usb usb_host_uac + EMBED_FILES new_epic.wav) + +# force-link test_host_uac.c +set_property(TARGET ${COMPONENT_LIB} APPEND PROPERTY INTERFACE_LINK_LIBRARIES "-u test_uac_setup") diff --git a/host/class/uac/usb_host_uac/test_app/main/new_epic.wav b/host/class/uac/usb_host_uac/test_app/main/new_epic.wav new file mode 100644 index 0000000000000000000000000000000000000000..59a21ab73d487847005a2389e3ad69fd2a7e1749 GIT binary patch literal 774132 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

U^8Sx?J{hg73LP8UKh%@ndNE5pq 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%0Dm#@_ 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∈w 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 literal 0 HcmV?d00001 diff --git a/host/class/uac/usb_host_uac/test_app/main/test_app_main.c b/host/class/uac/usb_host_uac/test_app/main/test_app_main.c new file mode 100644 index 00000000..b25c8df7 --- /dev/null +++ b/host/class/uac/usb_host_uac/test_app/main/test_app_main.c @@ -0,0 +1,57 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include "unity.h" +#include "esp_heap_caps.h" + +static size_t before_free_8bit; +static size_t before_free_32bit; + +#define TEST_MEMORY_LEAK_THRESHOLD (-530) +static void check_leak(size_t before_free, size_t after_free, const char *type) +{ + ssize_t delta = after_free - before_free; + printf("MALLOC_CAP_%s: Before %u bytes free, After %u bytes free (delta %d)\n", type, before_free, after_free, delta); + TEST_ASSERT_MESSAGE(delta >= TEST_MEMORY_LEAK_THRESHOLD, "memory leak"); +} + +void app_main(void) +{ + // ____ ___ ___________________ __ __ + // | | \/ _____/\______ \ _/ |_ ____ _______/ |_ + // | | /\_____ \ | | _/ \ __\/ __ \ / ___/\ __\. + // | | / / \ | | \ | | \ ___/ \___ \ | | + // |______/ /_______ / |______ / |__| \___ >____ > |__| + // \/ \/ \/ \/ + printf(" ____ ___ ___________________ __ __ \r\n"); + printf("| | \\/ _____/\\______ \\ _/ |_ ____ _______/ |_ \r\n"); + printf("| | /\\_____ \\ | | _/ \\ __\\/ __ \\ / ___/\\ __\\\r\n"); + printf("| | / / \\ | | \\ | | \\ ___/ \\___ \\ | | \r\n"); + printf("|______/ /_______ / |______ / |__| \\___ >____ > |__| \r\n"); + printf(" \\/ \\/ \\/ \\/ \r\n"); + + UNITY_BEGIN(); + unity_run_menu(); + UNITY_END(); +} + +/* setUp runs before every test */ +void setUp(void) +{ + before_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT); + before_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT); +} + +/* tearDown runs after every test */ +void tearDown(void) +{ + size_t after_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT); + size_t after_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT); + check_leak(before_free_8bit, after_free_8bit, "8BIT"); + check_leak(before_free_32bit, after_free_32bit, "32BIT"); +} diff --git a/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c b/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c new file mode 100644 index 00000000..ae61c8d8 --- /dev/null +++ b/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c @@ -0,0 +1,904 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include +#include "esp_log.h" +#include "freertos/FreeRTOS.h" +#include "freertos/event_groups.h" +#include "freertos/queue.h" +#include "freertos/semphr.h" +#include "unity.h" +#include "esp_private/usb_phy.h" +#include "usb/usb_host.h" +#include "usb/uac_host.h" + +// USB PHY for device disconnection emulation +static usb_phy_handle_t phy_hdl = NULL; +const static char *TAG = "UAC_TEST"; + +// ----------------------- Public ------------------------- +static EventGroupHandle_t s_evt_handle; +static QueueHandle_t s_event_queue = NULL; +static EventGroupHandle_t s_evt_handle = NULL; + +#define BIT0_USB_HOST_DRIVER_REMOVED (0x01 << 0) + +// Known microphone device parameters +#define UAC_DEV_PID 0x3307 +#define UAC_DEV_VID 0x349C + +#define UAC_DEV_MIC_IFACE_NUM 3 +#define UAC_DEV_MIC_IFACE_ALT_NUM 1 + +#define UAC_DEV_MIC_IFACE_ALT_1_CHANNELS 1 +#define UAC_DEV_MIC_IFACE_ALT_1_BIT_RESOLUTION 16 +#define UAC_DEV_MIC_IFACE_ALT_1_SAMPLE_FREQ_TYPE 1 +#define UAC_DEV_MIC_IFACE_ALT_1_SAMPLE_FREQ_1 8000 + +static const uint8_t UAC_DEV_MIC_IFACE_CHANNELS_ALT[UAC_DEV_MIC_IFACE_ALT_NUM] = {UAC_DEV_MIC_IFACE_ALT_1_CHANNELS}; +static const uint8_t UAC_DEV_MIC_IFACE_BIT_RESOLUTION_ALT[UAC_DEV_MIC_IFACE_ALT_NUM] = {UAC_DEV_MIC_IFACE_ALT_1_BIT_RESOLUTION}; +static const uint8_t UAC_DEV_MIC_IFACE_SAMPLE_FREQ_TPYE_ALT[UAC_DEV_MIC_IFACE_ALT_NUM] = {UAC_DEV_MIC_IFACE_ALT_1_SAMPLE_FREQ_TYPE}; +static const uint32_t UAC_DEV_MIC_IFACE_SAMPLE_FREQ_ALT[UAC_DEV_MIC_IFACE_ALT_NUM][UAC_DEV_MIC_IFACE_ALT_1_SAMPLE_FREQ_TYPE] = {{UAC_DEV_MIC_IFACE_ALT_1_SAMPLE_FREQ_1}}; + + +// Known speaker device parameters +#define UAC_DEV_SPK_IFACE_NUM 4 +#define UAC_DEV_SPK_IFACE_ALT_NUM 1 + +#define UAC_DEV_SPK_IFACE_ALT_1_CHANNELS 1 +#define UAC_DEV_SPK_IFACE_ALT_1_BIT_RESOLUTION 16 +#define UAC_DEV_SPK_IFACE_ALT_1_SAMPLE_FREQ_TYPE 1 +#define UAC_DEV_SPK_IFACE_ALT_1_SAMPLE_FREQ_1 8000 + +static const uint8_t UAC_DEV_SPK_IFACE_CHANNELS_ALT[UAC_DEV_SPK_IFACE_ALT_NUM] = {UAC_DEV_SPK_IFACE_ALT_1_CHANNELS}; +static const uint8_t UAC_DEV_SPK_IFACE_BIT_RESOLUTION_ALT[UAC_DEV_SPK_IFACE_ALT_NUM] = {UAC_DEV_SPK_IFACE_ALT_1_BIT_RESOLUTION}; +static const uint8_t UAC_DEV_SPK_IFACE_SAMPLE_FREQ_TPYE_ALT[UAC_DEV_SPK_IFACE_ALT_NUM] = {UAC_DEV_SPK_IFACE_ALT_1_SAMPLE_FREQ_TYPE}; +static const uint32_t UAC_DEV_SPK_IFACE_SAMPLE_FREQ_ALT[UAC_DEV_SPK_IFACE_ALT_NUM][UAC_DEV_SPK_IFACE_ALT_1_SAMPLE_FREQ_TYPE] = {{UAC_DEV_SPK_IFACE_ALT_1_SAMPLE_FREQ_1}}; + + +static void force_conn_state(bool connected, TickType_t delay_ticks) +{ + if (!phy_hdl) { + // P4 currently not support phy operation + return; + } + if (delay_ticks > 0) { + //Delay of 0 ticks causes a yield. So skip if delay_ticks is 0. + vTaskDelay(delay_ticks); + } + ESP_ERROR_CHECK(usb_phy_action(phy_hdl, (connected) ? USB_PHY_ACTION_HOST_ALLOW_CONN : USB_PHY_ACTION_HOST_FORCE_DISCONN)); +} + +typedef enum { + APP_EVENT = 0, + UAC_DRIVER_EVENT, + UAC_DEVICE_EVENT, +} event_group_t; + +typedef enum { + DRIVER_REMOVE = 1, +} user_event_t; + +typedef struct { + event_group_t event_group; + union { + struct { + uac_host_driver_event_t event; + uint8_t addr; + uint8_t iface_num; + void *arg; + } driver_evt; + struct { + uac_host_driver_event_t event; + uac_host_device_handle_t handle; + void *arg; + } device_evt; + }; +} event_queue_t; + +static void uac_device_callback(uac_host_device_handle_t uac_device_handle, const uac_host_device_event_t event, void *arg) +{ + if (event == UAC_HOST_DRIVER_EVENT_DISCONNECTED) { + ESP_LOGI(TAG, "UAC Device disconnected"); + ESP_ERROR_CHECK(uac_host_device_close(uac_device_handle)); + return; + } + // Send uac device event to the event queue + event_queue_t evt_queue = { + .event_group = UAC_DEVICE_EVENT, + .device_evt.handle = uac_device_handle, + .device_evt.event = event, + .device_evt.arg = arg + }; + // should not block here + xQueueSend(s_event_queue, &evt_queue, 0); +} + +static void uac_host_lib_callback(uint8_t addr, uint8_t iface_num, const uac_host_driver_event_t event, void *arg) +{ + // Send uac driver event to the event queue + event_queue_t evt_queue = { + .event_group = UAC_DRIVER_EVENT, + .driver_evt.addr = addr, + .driver_evt.iface_num = iface_num, + .driver_evt.event = event, + .driver_evt.arg = arg + }; + xQueueSend(s_event_queue, &evt_queue, 0); +} + +/** + * @brief Start USB Host install and handle common USB host library events while app pin not low + * + * @param[in] arg Not used + */ +static void usb_lib_task(void *arg) +{ + // Initialize the internal USB PHY to connect to the USB OTG peripheral. + // We manually install the USB PHY for testing + usb_phy_config_t phy_config = { + .controller = USB_PHY_CTRL_OTG, + .target = USB_PHY_TARGET_INT, + .otg_mode = USB_OTG_MODE_HOST, + .otg_speed = USB_PHY_SPEED_UNDEFINED, //In Host mode, the speed is determined by the connected device + }; + TEST_ASSERT_EQUAL(ESP_OK, usb_new_phy(&phy_config, &phy_hdl)); + + const usb_host_config_t host_config = { + .skip_phy_setup = true, + .intr_flags = ESP_INTR_FLAG_LEVEL1, + }; + + ESP_ERROR_CHECK(usb_host_install(&host_config)); + ESP_LOGI(TAG, "USB Host installed"); + xTaskNotifyGive(arg); + + bool all_clients_gone = false; + bool all_dev_free = false; + while (!all_clients_gone || !all_dev_free) { + // Start handling system events + uint32_t event_flags; + usb_host_lib_handle_events(portMAX_DELAY, &event_flags); + if (event_flags & USB_HOST_LIB_EVENT_FLAGS_NO_CLIENTS) { + printf("No more clients\n"); + usb_host_device_free_all(); + all_clients_gone = true; + } + if (event_flags & USB_HOST_LIB_EVENT_FLAGS_ALL_FREE) { + printf("All devices freed\n"); + all_dev_free = true; + } + } + + ESP_LOGI(TAG, "USB Host shutdown"); + // Clean up USB Host + vTaskDelay(10); // Short delay to allow clients clean-up + ESP_ERROR_CHECK(usb_host_uninstall()); + ESP_ERROR_CHECK(usb_del_phy(phy_hdl)); //Tear down USB PHY + phy_hdl = NULL; + // set bit BIT0_USB_HOST_DRIVER_REMOVED to notify driver removed + xEventGroupSetBits(s_evt_handle, BIT0_USB_HOST_DRIVER_REMOVED); + vTaskDelete(NULL); +} + +/** + * @brief Setups UAC testing + * + * - Create USB lib task + * - Install UAC Host driver + */ +void test_uac_setup(void) +{ + // create a queue to handle events + s_event_queue = xQueueCreate(16, sizeof(event_queue_t)); + TEST_ASSERT_NOT_NULL(s_event_queue); + s_evt_handle = xEventGroupCreate(); + TEST_ASSERT_NOT_NULL(s_evt_handle); + static TaskHandle_t uac_task_handle = NULL; + // create USB lib task, pass the current task handle to notify when the task is created + TEST_ASSERT_EQUAL(pdTRUE, xTaskCreatePinnedToCore(usb_lib_task, + "usb_events", + 4096, + xTaskGetCurrentTaskHandle(), + 5, &uac_task_handle, 0)); + + // install uac host driver + ulTaskNotifyTake(pdTRUE, portMAX_DELAY); + uac_host_driver_config_t uac_config = { + .create_background_task = true, + .task_priority = 5, + .stack_size = 4096, + .core_id = 0, + .callback = uac_host_lib_callback, + .callback_arg = NULL + }; + + ESP_ERROR_CHECK(uac_host_install(&uac_config)); + ESP_LOGI(TAG, "UAC Class Driver installed"); +} + +void test_uac_queue_reset(void) +{ + xQueueReset(s_event_queue); +} + +void test_uac_teardown(bool force) +{ + if (force) { + force_conn_state(false, pdMS_TO_TICKS(1000)); + } + vTaskDelay(500); + // uninstall uac host driver + ESP_LOGI(TAG, "UAC Driver uninstall"); + ESP_ERROR_CHECK(uac_host_uninstall()); + // Wait for USB lib task to finish + xEventGroupWaitBits(s_evt_handle, BIT0_USB_HOST_DRIVER_REMOVED, pdTRUE, pdTRUE, portMAX_DELAY); + // delete event queue and event group + vQueueDelete(s_event_queue); + vEventGroupDelete(s_evt_handle); + // delay to allow task to delete + vTaskDelay(100); +} + +void test_open_mic_device(uint8_t iface_num, uint32_t buffer_size, uint32_t buffer_threshold, uac_host_device_handle_t *uac_device_handle) +{ + // check if device params as expected + const uac_host_device_config_t dev_config = { + .addr = 1, + .iface_num = iface_num, + .buffer_size = buffer_size, + .buffer_threshold = buffer_threshold, + .callback = uac_device_callback, + .callback_arg = NULL, + }; + ESP_ERROR_CHECK(uac_host_device_open(&dev_config, uac_device_handle)); +} + +void test_open_spk_device(uint8_t iface_num, uint32_t buffer_size, uint32_t buffer_threshold, uac_host_device_handle_t *uac_device_handle) +{ + // check if device params as expected + const uac_host_device_config_t dev_config = { + .addr = 1, + .iface_num = iface_num, + .buffer_size = buffer_size, + .buffer_threshold = buffer_threshold, + .callback = uac_device_callback, + .callback_arg = NULL, + }; + ESP_ERROR_CHECK(uac_host_device_open(&dev_config, uac_device_handle)); +} + +void test_close_device(uac_host_device_handle_t uac_device_handle) +{ + ESP_ERROR_CHECK(uac_host_device_close(uac_device_handle)); +} + +void test_handle_dev_connection(uint8_t *iface_num, uint8_t *if_rx) +{ + event_queue_t evt_queue = {0}; + // ignore the first connected event + TEST_ASSERT_EQUAL(pdTRUE, xQueueReceive(s_event_queue, &evt_queue, portMAX_DELAY)); + TEST_ASSERT_EQUAL(UAC_DRIVER_EVENT, evt_queue.event_group); + TEST_ASSERT_EQUAL(1, evt_queue.driver_evt.addr); + if (iface_num) { + *iface_num = evt_queue.driver_evt.iface_num; + } + if (if_rx) { + *if_rx = evt_queue.driver_evt.event == UAC_HOST_DRIVER_EVENT_RX_CONNECTED ? 1 : 0; + } +} + +TEST_CASE("test uac device handling", "[uac_host][known_device]") +{ + test_uac_setup(); + // handle device connection + uint8_t mic_iface_num = 0; + uint8_t spk_iface_num = 0; + test_handle_dev_connection(&mic_iface_num, NULL); + TEST_ASSERT_EQUAL(UAC_DEV_MIC_IFACE_NUM, mic_iface_num); + test_handle_dev_connection(&spk_iface_num, NULL); + TEST_ASSERT_EQUAL(UAC_DEV_SPK_IFACE_NUM, spk_iface_num); + uint8_t test_counter = 0; + + while (++test_counter < 5) { + // check if mic device params as expected + uac_host_device_handle_t mic_device_handle = NULL; + uac_host_dev_info_t dev_info; + test_open_mic_device(mic_iface_num, 16000, 4000, &mic_device_handle); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_info(mic_device_handle, &dev_info)); + TEST_ASSERT_EQUAL(UAC_STREAM_RX, dev_info.type); + ESP_LOGI(TAG, "UAC Device opened: MIC"); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_printf_device_param(mic_device_handle)); + TEST_ASSERT_EQUAL(UAC_DEV_PID, dev_info.PID); + TEST_ASSERT_EQUAL(UAC_DEV_VID, dev_info.VID); + TEST_ASSERT_EQUAL(UAC_DEV_MIC_IFACE_NUM, dev_info.iface_num); + TEST_ASSERT_EQUAL(UAC_DEV_MIC_IFACE_ALT_NUM, dev_info.iface_alt_num); + printf("iManufacturer: %ls\n", dev_info.iManufacturer); + printf("iProduct: %ls\n", dev_info.iProduct); + printf("iSerialNumber: %ls\n", dev_info.iSerialNumber); + uac_host_dev_alt_param_t iface_alt_params; + for (int i = 0; i < dev_info.iface_alt_num; i++) { + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_alt_param(mic_device_handle, i + 1, &iface_alt_params)); + TEST_ASSERT_EQUAL(UAC_DEV_MIC_IFACE_CHANNELS_ALT[i], iface_alt_params.channels); + TEST_ASSERT_EQUAL(UAC_DEV_MIC_IFACE_BIT_RESOLUTION_ALT[i], iface_alt_params.bit_resolution); + TEST_ASSERT_EQUAL(UAC_DEV_MIC_IFACE_SAMPLE_FREQ_TPYE_ALT[i], iface_alt_params.sample_freq_type); + // check frequency one by one + for (size_t j = 0; j < iface_alt_params.sample_freq_type; j++) { + TEST_ASSERT_EQUAL(UAC_DEV_MIC_IFACE_SAMPLE_FREQ_ALT[i][j], iface_alt_params.sample_freq[j]); + } + } + + // check if spk device params as expected + uac_host_device_handle_t spk_device_handle = NULL; + test_open_spk_device(spk_iface_num, 16000, 4000, &spk_device_handle); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_info(spk_device_handle, &dev_info)); + TEST_ASSERT_EQUAL(UAC_STREAM_TX, dev_info.type); + ESP_LOGI(TAG, "UAC Device opened: SPK"); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_printf_device_param(spk_device_handle)); + TEST_ASSERT_EQUAL(UAC_DEV_PID, dev_info.PID); + TEST_ASSERT_EQUAL(UAC_DEV_VID, dev_info.VID); + TEST_ASSERT_EQUAL(UAC_DEV_SPK_IFACE_NUM, dev_info.iface_num); + TEST_ASSERT_EQUAL(UAC_DEV_SPK_IFACE_ALT_NUM, dev_info.iface_alt_num); + printf("iManufacturer: %ls\n", dev_info.iManufacturer); + printf("iProduct: %ls\n", dev_info.iProduct); + printf("iSerialNumber: %ls\n", dev_info.iSerialNumber); + + for (int i = 0; i < dev_info.iface_alt_num; i++) { + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_alt_param(spk_device_handle, i + 1, &iface_alt_params)); + TEST_ASSERT_EQUAL(UAC_DEV_SPK_IFACE_CHANNELS_ALT[i], iface_alt_params.channels); + TEST_ASSERT_EQUAL(UAC_DEV_SPK_IFACE_BIT_RESOLUTION_ALT[i], iface_alt_params.bit_resolution); + TEST_ASSERT_EQUAL(UAC_DEV_SPK_IFACE_SAMPLE_FREQ_TPYE_ALT[i], iface_alt_params.sample_freq_type); + for (size_t j = 0; j < iface_alt_params.sample_freq_type; j++) { + TEST_ASSERT_EQUAL(UAC_DEV_SPK_IFACE_SAMPLE_FREQ_ALT[i][j], iface_alt_params.sample_freq[j]); + } + } + + // close the device + test_close_device(mic_device_handle); + test_close_device(spk_device_handle); + // reset the queue + test_uac_queue_reset(); + } + + // Tear down test + test_uac_teardown(false); + // Verify the memory leackage during test environment tearDown() +} + +TEST_CASE("test uac rx reading", "[uac_host][rx]") +{ + // write test for uac rx + test_uac_setup(); + + uint8_t mic_iface_num = 0; + uint8_t spk_iface_num = 0; + uint8_t if_rx = false; + test_handle_dev_connection(&mic_iface_num, &if_rx); + if (!if_rx) { + spk_iface_num = mic_iface_num; + test_handle_dev_connection(&mic_iface_num, &if_rx); + TEST_ASSERT_EQUAL(if_rx, true); + } else { + test_handle_dev_connection(&spk_iface_num, &if_rx); + TEST_ASSERT_EQUAL(if_rx, false); + } + + const uint32_t buffer_threshold = 4800; + const uint32_t buffer_size = 19200; + + uac_host_device_handle_t uac_device_handle = NULL; + test_open_mic_device(mic_iface_num, buffer_size, buffer_threshold, &uac_device_handle); + + // start the device with first alt interface params + uac_host_dev_alt_param_t iface_alt_params; + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_alt_param(uac_device_handle, 1, &iface_alt_params)); + const uac_host_stream_config_t stream_config = { + .channels = iface_alt_params.channels, + .bit_resolution = iface_alt_params.bit_resolution, + .sample_freq = iface_alt_params.sample_freq[0], + }; + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_start(uac_device_handle, &stream_config)); + // Most device support mute and volume control. if not, comment out the following two lines + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(uac_device_handle, 0)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_volume(uac_device_handle, 80)); + + uint8_t *rx_buffer = (uint8_t *)calloc(1, buffer_threshold); + TEST_ASSERT_NOT_NULL(rx_buffer); + uint32_t rx_size = 0; + // got 5s data, then stop the stream + const uint32_t timeout = 5000; + uint32_t time_counter = 0; + event_queue_t evt_queue = {0}; + ESP_LOGI(TAG, "Start reading data from MIC"); + while (1) { + if (xQueueReceive(s_event_queue, &evt_queue, portMAX_DELAY)) { + TEST_ASSERT_EQUAL(UAC_DEVICE_EVENT, evt_queue.event_group); + uac_host_device_handle_t uac_device_handle = evt_queue.device_evt.handle; + uac_host_device_event_t event = evt_queue.device_evt.event; + switch (event) { + case UAC_HOST_DEVICE_EVENT_RX_DONE: + uac_host_device_read(uac_device_handle, rx_buffer, buffer_threshold, &rx_size, 0); + TEST_ASSERT_EQUAL(buffer_threshold, rx_size); + time_counter += rx_size / (iface_alt_params.channels * iface_alt_params.bit_resolution / 8 * iface_alt_params.sample_freq[0] / 1000); + if (time_counter >= timeout) { + goto exit_rx; + } + break; + default: + TEST_ASSERT(0); + break; + } + } + } +exit_rx: + ESP_LOGI(TAG, "Stop reading data from MIC"); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(uac_device_handle, 1)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_close(uac_device_handle)); + + free(rx_buffer); + test_uac_teardown(false); +} + +TEST_CASE("test uac tx writing", "[uac_host][tx]") +{ + // write test for uac tx + test_uac_setup(); + + // handle device connection + uint8_t mic_iface_num = 0; + uint8_t spk_iface_num = 0; + uint8_t if_rx = false; + test_handle_dev_connection(&mic_iface_num, &if_rx); + if (!if_rx) { + spk_iface_num = mic_iface_num; + test_handle_dev_connection(&mic_iface_num, &if_rx); + TEST_ASSERT_EQUAL(if_rx, true); + } else { + test_handle_dev_connection(&spk_iface_num, &if_rx); + TEST_ASSERT_EQUAL(if_rx, false); + } + + // source wav file format + const uint32_t sample_freq = 48000; + const uint8_t channels = 2; + const uint8_t bit_resolution = 16; + uint32_t tx_buffer_size = 19200; + uint32_t tx_buffer_threshold = 4800; + + uac_host_device_handle_t uac_device_handle = NULL; + test_open_spk_device(spk_iface_num, tx_buffer_size, tx_buffer_threshold, &uac_device_handle); + uac_host_dev_alt_param_t spk_alt_params; + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_alt_param(uac_device_handle, 1, &spk_alt_params)); + + // open the device with the wav file's format + const uac_host_stream_config_t stream_config = { + .channels = spk_alt_params.channels, + .bit_resolution = spk_alt_params.bit_resolution, + .sample_freq = spk_alt_params.sample_freq[0], + .flags = FLAG_STREAM_SUSPEND_AFTER_START, + }; + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_start(uac_device_handle, &stream_config)); + + extern const uint8_t wav_file_start[] asm("_binary_new_epic_wav_start"); + extern const uint8_t wav_file_end[] asm("_binary_new_epic_wav_end"); + + const uint16_t *s_buffer = (uint16_t *)(wav_file_start + 44); + uint16_t *tx_buffer = calloc(1, tx_buffer_threshold); + TEST_ASSERT_NOT_NULL(tx_buffer); + uint32_t tx_size = tx_buffer_threshold; + + int freq_offsite_step = sample_freq / spk_alt_params.sample_freq[0]; + int downsampling_bits = bit_resolution - spk_alt_params.bit_resolution; + int offset_size = tx_size / (spk_alt_params.bit_resolution / 8); + // we can only support adjust from 2 channels to 1 channel + bool channels_adjust = channels != spk_alt_params.channels ? true : false; + + // fill the tx buffer with wav file data + for (size_t i = 0; i < offset_size; i++) { + tx_buffer[i] = s_buffer[i * freq_offsite_step] >> downsampling_bits; + } + + if (downsampling_bits == 8) { + // move buffer to the correct position + for (size_t i = 0; i < offset_size; i++) { + *((uint8_t *)tx_buffer + i) = *((uint8_t *)tx_buffer + i * 2); + } + tx_size = tx_size / 2; + } else if (downsampling_bits) { + ESP_LOGE(TAG, "Unsupported downsampling bits %d", downsampling_bits); + } + + if (channels_adjust) { + // convert stereo to mono + if (downsampling_bits == 8) { + tx_size = tx_size / 2; + for (size_t i = 0; i < tx_size; i++) { + *((uint8_t *)tx_buffer + i) = *((uint8_t *)tx_buffer + i * 2); + } + } else { + tx_size = tx_size / 2; + for (size_t i = 0; i < tx_size; i++) { + tx_buffer[i] = tx_buffer[2 * i]; + } + } + } + s_buffer += offset_size * freq_offsite_step; + + // invalid operate + uint32_t volume = 10; + TEST_ASSERT_EQUAL(ESP_ERR_INVALID_STATE, uac_host_device_write(uac_device_handle, (uint8_t *)tx_buffer, tx_size, 0)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(uac_device_handle, 0)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_volume(uac_device_handle, volume)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_resume(uac_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_write(uac_device_handle, (uint8_t *)tx_buffer, tx_size, 0)); + + // playback from volume 10 to 100 + const uint32_t volume_max = 100; + event_queue_t evt_queue = {0}; + while (1) { + if (xQueueReceive(s_event_queue, &evt_queue, portMAX_DELAY)) { + TEST_ASSERT_EQUAL(UAC_DEVICE_EVENT, evt_queue.event_group); + uac_host_device_handle_t uac_device_handle = evt_queue.device_evt.handle; + uac_host_device_event_t event = evt_queue.device_evt.event; + switch (event) { + case UAC_HOST_DEVICE_EVENT_TX_DONE: + if ((uint32_t)(s_buffer + offset_size) > (uint32_t)wav_file_end) { + s_buffer = (uint16_t *)(wav_file_start + 44); + volume += 20; + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_volume(uac_device_handle, volume > 100 ? 100 : volume)); + printf("Volume: %" PRIu32 "\n", volume); + } else { + // fill the tx buffer with wav file data + tx_size = tx_buffer_threshold; + for (size_t i = 0; i < offset_size; i++) { + tx_buffer[i] = s_buffer[i * freq_offsite_step] >> downsampling_bits; + } + if (downsampling_bits == 8) { + // move buffer to the correct position + for (size_t i = 0; i < offset_size; i++) { + *((uint8_t *)tx_buffer + i) = *((uint8_t *)tx_buffer + i * 2); + } + tx_size = tx_size / 2; + } else if (downsampling_bits) { + ESP_LOGE(TAG, "Unsupported downsampling bits %d", downsampling_bits); + } + if (channels_adjust) { + // convert stereo to mono + if (downsampling_bits == 8) { + tx_size = tx_size / 2; + for (size_t i = 0; i < tx_size; i++) { + *((uint8_t *)tx_buffer + i) = *((uint8_t *)tx_buffer + i * 2); + } + } else { + tx_size = tx_size / 2; + for (size_t i = 0; i < tx_size; i++) { + tx_buffer[i] = tx_buffer[2 * i]; + } + } + } + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_write(uac_device_handle, (uint8_t *)tx_buffer, tx_size, 0)); + s_buffer += offset_size * freq_offsite_step; + } + if (volume > volume_max) { + goto exit_tx; + } + break; + default: + TEST_ASSERT(0); + break; + } + } + } + +exit_tx: + free(tx_buffer); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(uac_device_handle, 1)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_close(uac_device_handle)); + + test_uac_teardown(false); +} + +TEST_CASE("test uac tx rx loopback", "[uac_host][tx][rx]") +{ + test_uac_setup(); + + // handle device connection + uint8_t mic_iface_num = 0; + uint8_t spk_iface_num = 0; + uint8_t if_rx = false; + test_handle_dev_connection(&mic_iface_num, &if_rx); + if (!if_rx) { + spk_iface_num = mic_iface_num; + test_handle_dev_connection(&mic_iface_num, &if_rx); + TEST_ASSERT_EQUAL(if_rx, true); + } else { + test_handle_dev_connection(&spk_iface_num, &if_rx); + TEST_ASSERT_EQUAL(if_rx, false); + } + + const uint32_t rx_buffer_size = 19200; + const uint32_t rx_buffer_threshold = 4800; + + uac_host_device_handle_t mic_device_handle = NULL; + test_open_mic_device(mic_iface_num, rx_buffer_size, rx_buffer_threshold, &mic_device_handle); + uac_host_device_handle_t spk_device_handle = NULL; + // set same params to spk device + test_open_spk_device(spk_iface_num, rx_buffer_size, rx_buffer_threshold, &spk_device_handle); + + // get mic alt interface 1 params, set same params to spk device + uac_host_dev_alt_param_t mic_alt_params; + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_alt_param(mic_device_handle, 1, &mic_alt_params)); + + uac_host_stream_config_t stream_config = { + .channels = mic_alt_params.channels, + .bit_resolution = mic_alt_params.bit_resolution, + .sample_freq = mic_alt_params.sample_freq[0], + .flags = FLAG_STREAM_SUSPEND_AFTER_START, + }; + + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_start(mic_device_handle, &stream_config)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(mic_device_handle, 0)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_volume(mic_device_handle, 80)); + + uac_host_dev_alt_param_t spk_alt_params; + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_alt_param(spk_device_handle, 1, &spk_alt_params)); + + // some usb headset may have one channel for mic and two channels for speaker + bool channel_mismatch = false; + if (spk_alt_params.channels != mic_alt_params.channels) { + if (mic_alt_params.channels == 1 && spk_alt_params.channels == 2) { + ESP_LOGW(TAG, "Speaker channels %u and microphone channels %u are not the same", spk_alt_params.channels, mic_alt_params.channels); + stream_config.channels = 2; + channel_mismatch = true; + } else { + ESP_LOGE(TAG, "Speaker channels %u and microphone channels %u are not supported", spk_alt_params.channels, mic_alt_params.channels); + TEST_ASSERT(0); + } + } + + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_start(spk_device_handle, &stream_config)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(spk_device_handle, 0)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_volume(spk_device_handle, 80)); + + uint8_t *rx_buffer = (uint8_t *)calloc(1, rx_buffer_threshold); + uint8_t *rx_buffer_stereo = NULL; + if (channel_mismatch) { + rx_buffer_stereo = (uint8_t *)calloc(1, rx_buffer_threshold * 2); + TEST_ASSERT_NOT_NULL(rx_buffer_stereo); + } + TEST_ASSERT_NOT_NULL(rx_buffer); + uint32_t rx_size = 0; + // got 5s data, then stop the stream + const uint32_t timeout = 5000; + const uint32_t test_times = 3; + uint32_t time_counter = 0; + uint32_t test_counter = 0; + event_queue_t evt_queue = {0}; + while (1) { + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_resume(mic_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_resume(spk_device_handle)); + while (1) { + if (xQueueReceive(s_event_queue, &evt_queue, portMAX_DELAY)) { + TEST_ASSERT_EQUAL(UAC_DEVICE_EVENT, evt_queue.event_group); + uac_host_device_event_t event = evt_queue.device_evt.event; + esp_err_t ret = ESP_FAIL; + switch (event) { + case UAC_HOST_DEVICE_EVENT_RX_DONE: + // read as much as possible + do { + ret = uac_host_device_read(mic_device_handle, rx_buffer, rx_buffer_threshold, &rx_size, 0); + if (ret == ESP_OK) { + if (channel_mismatch) { + // convert mono to stereo + if (mic_alt_params.bit_resolution == 16) { + for (size_t i = 0; i < rx_size; i += 2) { + rx_buffer_stereo[i * 2] = rx_buffer[i]; + rx_buffer_stereo[i * 2 + 1] = rx_buffer[i + 1]; + rx_buffer_stereo[i * 2 + 2] = rx_buffer[i]; + rx_buffer_stereo[i * 2 + 3] = rx_buffer[i + 1]; + } + ret = uac_host_device_write(spk_device_handle, rx_buffer_stereo, rx_size * 2, 0); + } else { + for (size_t i = 0; i < rx_size; i++) { + rx_buffer_stereo[i * 2] = rx_buffer[i]; + rx_buffer_stereo[i * 2 + 1] = rx_buffer[i]; + } + ret = uac_host_device_write(spk_device_handle, rx_buffer_stereo, rx_size * 2, 0); + } + } else { + ret = uac_host_device_write(spk_device_handle, rx_buffer, rx_size, 0); + } + time_counter += rx_size / (mic_alt_params.channels * mic_alt_params.bit_resolution / 8 * mic_alt_params.sample_freq[0] / 1000); + } + } while (ret == ESP_OK); + + if (time_counter >= timeout) { + goto restart_rx; + } + break; + case UAC_HOST_DEVICE_EVENT_TX_DONE: + // we do nothing here, just wait for the rx done event + break; + default: + TEST_ASSERT(0); + break; + } + } + } +restart_rx: + if (++test_counter >= test_times) { + goto exit_rx; + } + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_suspend(mic_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_suspend(spk_device_handle)); + time_counter = 0; + vTaskDelay(100); + } + +exit_rx: + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(spk_device_handle, 1)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_close(spk_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(mic_device_handle, 1)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_close(mic_device_handle)); + free(rx_buffer); + if (rx_buffer_stereo) { + free(rx_buffer_stereo); + } + test_uac_teardown(false); +} + +#if !CONFIG_IDF_TARGET_ESP32P4 +TEST_CASE("test uac tx rx loopback with disconnect", "[uac_host][tx][rx][hot-plug]") +{ + test_uac_setup(); + + // handle device connection + uint8_t mic_iface_num = 0; + uint8_t spk_iface_num = 0; + uint8_t if_rx = false; + test_handle_dev_connection(&mic_iface_num, &if_rx); + if (!if_rx) { + spk_iface_num = mic_iface_num; + test_handle_dev_connection(&mic_iface_num, &if_rx); + TEST_ASSERT_EQUAL(if_rx, true); + } else { + test_handle_dev_connection(&spk_iface_num, &if_rx); + TEST_ASSERT_EQUAL(if_rx, false); + } + + const uint32_t rx_buffer_size = 19200; + const uint32_t rx_buffer_threshold = 4800; + + uac_host_device_handle_t mic_device_handle = NULL; + test_open_mic_device(mic_iface_num, rx_buffer_size, rx_buffer_threshold, &mic_device_handle); + uac_host_device_handle_t spk_device_handle = NULL; + // set same params to spk device + test_open_spk_device(spk_iface_num, rx_buffer_size, rx_buffer_threshold, &spk_device_handle); + + // get mic alt interface 1 params, set same params to spk device + uac_host_dev_alt_param_t mic_alt_params; + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_alt_param(mic_device_handle, 1, &mic_alt_params)); + + uac_host_stream_config_t stream_config = { + .channels = mic_alt_params.channels, + .bit_resolution = mic_alt_params.bit_resolution, + .sample_freq = mic_alt_params.sample_freq[0], + .flags = FLAG_STREAM_SUSPEND_AFTER_START, + }; + + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_start(mic_device_handle, &stream_config)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(mic_device_handle, 0)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_volume(mic_device_handle, 80)); + + uac_host_dev_alt_param_t spk_alt_params; + TEST_ASSERT_EQUAL(ESP_OK, uac_host_get_device_alt_param(spk_device_handle, 1, &spk_alt_params)); + + // some usb headset may have one channel for mic and two channels for speaker + bool channel_mismatch = false; + if (spk_alt_params.channels != mic_alt_params.channels) { + if (mic_alt_params.channels == 1 && spk_alt_params.channels == 2) { + ESP_LOGW(TAG, "Speaker channels %u and microphone channels %u are not the same", spk_alt_params.channels, mic_alt_params.channels); + stream_config.channels = 2; + channel_mismatch = true; + } else { + ESP_LOGE(TAG, "Speaker channels %u and microphone channels %u are not supported", spk_alt_params.channels, mic_alt_params.channels); + TEST_ASSERT(0); + } + } + + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_start(spk_device_handle, &stream_config)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(spk_device_handle, 0)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_volume(spk_device_handle, 80)); + + uint8_t *rx_buffer = (uint8_t *)calloc(1, rx_buffer_threshold); + uint8_t *rx_buffer_stereo = NULL; + if (channel_mismatch) { + rx_buffer_stereo = (uint8_t *)calloc(1, rx_buffer_threshold * 2); + TEST_ASSERT_NOT_NULL(rx_buffer_stereo); + } + TEST_ASSERT_NOT_NULL(rx_buffer); + uint32_t rx_size = 0; + // got 5s data, then stop the stream + const uint32_t timeout = 1000; + const uint32_t test_times = 2; + uint32_t time_counter = 0; + uint32_t test_counter = 0; + event_queue_t evt_queue = {0}; + while (1) { + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_resume(mic_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_resume(spk_device_handle)); + while (1) { + if (xQueueReceive(s_event_queue, &evt_queue, portMAX_DELAY)) { + TEST_ASSERT_EQUAL(UAC_DEVICE_EVENT, evt_queue.event_group); + uac_host_device_event_t event = evt_queue.device_evt.event; + esp_err_t ret = ESP_FAIL; + switch (event) { + case UAC_HOST_DEVICE_EVENT_RX_DONE: + // read as much as possible + do { + ret = uac_host_device_read(mic_device_handle, rx_buffer, rx_buffer_threshold, &rx_size, 0); + if (ret == ESP_OK) { + if (channel_mismatch) { + // convert mono to stereo + if (mic_alt_params.bit_resolution == 16) { + for (size_t i = 0; i < rx_size; i += 2) { + rx_buffer_stereo[i * 2] = rx_buffer[i]; + rx_buffer_stereo[i * 2 + 1] = rx_buffer[i + 1]; + rx_buffer_stereo[i * 2 + 2] = rx_buffer[i]; + rx_buffer_stereo[i * 2 + 3] = rx_buffer[i + 1]; + } + ret = uac_host_device_write(spk_device_handle, rx_buffer_stereo, rx_size * 2, 0); + } else { + for (size_t i = 0; i < rx_size; i++) { + rx_buffer_stereo[i * 2] = rx_buffer[i]; + rx_buffer_stereo[i * 2 + 1] = rx_buffer[i]; + } + ret = uac_host_device_write(spk_device_handle, rx_buffer_stereo, rx_size * 2, 0); + } + } else { + ret = uac_host_device_write(spk_device_handle, rx_buffer, rx_size, 0); + } + time_counter += rx_size / (mic_alt_params.channels * mic_alt_params.bit_resolution / 8 * mic_alt_params.sample_freq[0] / 1000); + } + } while (ret == ESP_OK); + + if (time_counter >= timeout) { + goto restart_rx; + } + break; + case UAC_HOST_DEVICE_EVENT_TX_DONE: + // we do nothing here, just wait for the rx done event + break; + default: + TEST_ASSERT(0); + break; + } + } + } +restart_rx: + if (++test_counter >= test_times) { + goto exit_rx; + } + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_suspend(mic_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_suspend(spk_device_handle)); + time_counter = 0; + vTaskDelay(100); + } + +exit_rx: + force_conn_state(false, 0); + // Wait device be closed by callback + vTaskDelay(500); + free(rx_buffer); + if (rx_buffer_stereo) { + free(rx_buffer_stereo); + } + test_uac_teardown(false); +} +#endif diff --git a/host/class/uac/usb_host_uac/test_app/partitions.csv b/host/class/uac/usb_host_uac/test_app/partitions.csv new file mode 100644 index 00000000..88358a59 --- /dev/null +++ b/host/class/uac/usb_host_uac/test_app/partitions.csv @@ -0,0 +1,5 @@ +# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 24k +phy_init, data, phy, 0xf000, 4k +factory, app, factory, , 2M diff --git a/host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py b/host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py new file mode 100644 index 00000000..f71cc2f1 --- /dev/null +++ b/host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py @@ -0,0 +1,17 @@ +# SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: Apache-2.0 + +from typing import Tuple + +import pytest +from pytest_embedded_idf.dut import IdfDut + + +@pytest.mark.esp32s2 +@pytest.mark.esp32s3 +@pytest.mark.temp_skip_ci(targets=['esp32s2', 'esp32s3'], reason='unable to mock UAC 1.0 device with tinyusb') +@pytest.mark.usb_host +def test_usb_host_uac(dut: IdfDut) -> None: + dut.expect_exact('Press ENTER to see the list of tests.') + dut.write('[uac_host]') + dut.expect_unity_test_output(timeout = 3000) diff --git a/host/class/uac/usb_host_uac/test_app/sdkconfig.defaults b/host/class/uac/usb_host_uac/test_app/sdkconfig.defaults new file mode 100644 index 00000000..c2ff8991 --- /dev/null +++ b/host/class/uac/usb_host_uac/test_app/sdkconfig.defaults @@ -0,0 +1,8 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) Project Minimal Configuration +# +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_FREERTOS_HZ=1000 +CONFIG_USB_HOST_CONTROL_TRANSFER_MAX_SIZE=2048 +CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT=y \ No newline at end of file diff --git a/host/class/uac/usb_host_uac/uac_descriptors.c b/host/class/uac/usb_host_uac/uac_descriptors.c new file mode 100644 index 00000000..1c6fa18a --- /dev/null +++ b/host/class/uac/usb_host_uac/uac_descriptors.c @@ -0,0 +1,317 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include +#include +#include "usb/usb_helpers.h" +#include "usb/usb_types_ch9.h" +#include "esp_check.h" +#include "usb/usb_host.h" +#include "usb/uac_host.h" + +// ----------------------------------------------- Descriptor Printing ------------------------------------------------- + +static void print_ep_desc(const usb_ep_desc_t *ep_desc) +{ + const char *ep_type_str; + int type = ep_desc->bmAttributes & USB_BM_ATTRIBUTES_XFERTYPE_MASK; + + switch (type) { + case USB_BM_ATTRIBUTES_XFER_CONTROL: + ep_type_str = "CTRL"; + break; + case USB_BM_ATTRIBUTES_XFER_ISOC: + ep_type_str = "ISOC"; + break; + case USB_BM_ATTRIBUTES_XFER_BULK: + ep_type_str = "BULK"; + break; + case USB_BM_ATTRIBUTES_XFER_INT: + ep_type_str = "INT"; + break; + default: + ep_type_str = NULL; + break; + } + + printf("\t\t*** Endpoint descriptor ***\n"); + printf("\t\tbLength %d\n", ep_desc->bLength); + printf("\t\tbDescriptorType %d\n", ep_desc->bDescriptorType); + printf("\t\tbEndpointAddress 0x%x\tEP %d %s\n", ep_desc->bEndpointAddress, + USB_EP_DESC_GET_EP_NUM(ep_desc), + USB_EP_DESC_GET_EP_DIR(ep_desc) ? "IN" : "OUT"); + printf("\t\tbmAttributes 0x%x\t%s\n", ep_desc->bmAttributes, ep_type_str); + printf("\t\twMaxPacketSize %d\n", USB_EP_DESC_GET_MPS(ep_desc)); + printf("\t\tbInterval %d\n", ep_desc->bInterval); +} + +static void usbh_print_intf_desc(const usb_intf_desc_t *intf_desc) +{ + printf("\t*** Interface descriptor ***\n"); + printf("\tbLength %d\n", intf_desc->bLength); + printf("\tbDescriptorType %d\n", intf_desc->bDescriptorType); + printf("\tbInterfaceNumber %d\n", intf_desc->bInterfaceNumber); + printf("\tbAlternateSetting %d\n", intf_desc->bAlternateSetting); + printf("\tbNumEndpoints %d\n", intf_desc->bNumEndpoints); + printf("\tbInterfaceClass 0x%x\n", intf_desc->bInterfaceClass); + printf("\tbInterfaceSubClass 0x%x\n", intf_desc->bInterfaceSubClass); + printf("\tbInterfaceProtocol 0x%x\n", intf_desc->bInterfaceProtocol); + printf("\tiInterface %d\n", intf_desc->iInterface); +} + +static void usbh_print_cfg_desc(const usb_config_desc_t *cfg_desc) +{ + printf("*** Configuration descriptor ***\n"); + printf("bLength %d\n", cfg_desc->bLength); + printf("bDescriptorType %d\n", cfg_desc->bDescriptorType); + printf("wTotalLength %d\n", cfg_desc->wTotalLength); + printf("bNumInterfaces %d\n", cfg_desc->bNumInterfaces); + printf("bConfigurationValue %d\n", cfg_desc->bConfigurationValue); + printf("iConfiguration %d\n", cfg_desc->iConfiguration); + printf("bmAttributes 0x%x\n", cfg_desc->bmAttributes); + printf("bMaxPower %dmA\n", cfg_desc->bMaxPower * 2); +} + +static void print_iad_desc(const usb_iad_desc_t *iad_desc) +{ + printf("*** Interface Association Descriptor ***\n"); + printf("bLength %d\n", iad_desc->bLength); + printf("bDescriptorType %d\n", iad_desc->bDescriptorType); + printf("bFirstInterface %d\n", iad_desc->bFirstInterface); + printf("bInterfaceCount %d\n", iad_desc->bInterfaceCount); + printf("bFunctionClass 0x%x\n", iad_desc->bFunctionClass); + printf("bFunctionSubClass 0x%x\n", iad_desc->bFunctionSubClass); + printf("bFunctionProtocol 0x%x\n", iad_desc->bFunctionProtocol); + printf("iFunction %d\n", iad_desc->iFunction); +} + +static void print_ac_header_desc(const uint8_t *buff) +{ + const uac_ac_header_desc_t *desc = (const uac_ac_header_desc_t *)buff; + printf("\t*** Audio control header descriptor ***\n"); + printf("\tbLength %d\n", desc->bLength); + printf("\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); + printf("\tbcdADC 0x%x\n", desc->bcdADC); + printf("\twTotalLength %d\n", desc->wTotalLength); + printf("\tbInCollection %d\n", desc->bInCollection); + if (desc->bInCollection) { + const uint8_t *p_intf = desc->baInterfaceNr; + for (int i = 0; i < desc->bInCollection; ++i) { + printf("\t\tInterface number[%d] = %d\n", i, p_intf[i]); + } + } +} + +static void print_ac_input_desc(const uint8_t *buff) +{ + const uac_ac_input_terminal_desc_t *desc = (const uac_ac_input_terminal_desc_t *)buff; + printf("\t*** Audio control input terminal descriptor ***\n"); + printf("\tbLength %d\n", desc->bLength); + printf("\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); + printf("\tbTerminalID %d\n", desc->bTerminalID); + printf("\twTerminalType 0x%x\n", desc->wTerminalType); + printf("\tbAssocTerminal %d\n", desc->bAssocTerminal); + printf("\tbNrChannels %d\n", desc->bNrChannels); + printf("\twChannelConfig 0x%04x\n", desc->wChannelConfig); + printf("\tiChannelNames %d\n", desc->iChannelNames); + printf("\tiTerminal %d\n", desc->iTerminal); +} + +static void print_ac_output_desc(const uint8_t *buff) +{ + const uac_ac_output_terminal_desc_t *desc = (const uac_ac_output_terminal_desc_t *)buff; + printf("\t*** Audio control output terminal descriptor ***\n"); + printf("\tbLength %d\n", desc->bLength); + printf("\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); + printf("\tbTerminalID %d\n", desc->bTerminalID); + printf("\twTerminalType 0x%x\n", desc->wTerminalType); + printf("\tbAssocTerminal %d\n", desc->bAssocTerminal); + printf("\tbSourceID %d\n", desc->bSourceID); + printf("\tiTerminal %d\n", desc->iTerminal); +} + +static void print_ac_feature_desc(const uint8_t *buff) +{ + const uac_ac_feature_unit_desc_t *desc = (const uac_ac_feature_unit_desc_t *)buff; + printf("\t*** Audio control feature unit descriptor ***\n"); + printf("\tbLength %d\n", desc->bLength); + printf("\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); + printf("\tbUnitID %d\n", desc->bUnitID); + printf("\tbSourceID %d\n", desc->bSourceID); + printf("\tbControlSize %d\n", desc->bControlSize); + for (size_t i = 0; i < (desc->bLength - 7) / desc->bControlSize; i += desc->bControlSize) { + printf("\tbmaControls[ch%d] 0x%x\n", i, desc->bmaControls[i]); + } + printf("\tiFeature %d\n", desc->iFeature); +} + +static void parse_as_ep_general_desc(const uint8_t *buff) +{ + const uac_as_cs_ep_desc_t *desc = (const uac_as_cs_ep_desc_t *)buff; + printf("\t\t*** Audio stream endpoint general descriptor ***\n"); + printf("\t\tbLength %d\n", desc->bLength); + printf("\t\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\t\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); + printf("\t\tbmAttributes 0x%x\n", desc->bmAttributes); + printf("\t\tbLockDelayUnits %d\n", desc->bLockDelayUnits); + printf("\t\twLockDelay %d\n", desc->wLockDelay); +} + +static void parse_as_general_desc(const uint8_t *buff) +{ + const uac_as_general_desc_t *desc = (const uac_as_general_desc_t *)buff; + printf("\t*** Audio stream general descriptor ***\n"); + printf("\tbLength %d\n", desc->bLength); + printf("\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); + printf("\tbTerminalLink %d\n", desc->bTerminalLink); + printf("\tbDelay %d\n", desc->bDelay); + printf("\twFormatTag %d\n", desc->wFormatTag); +} + +static void parse_as_type_desc(const uint8_t *buff) +{ + const uac_as_type_I_format_desc_t *desc = (const uac_as_type_I_format_desc_t *)buff; + printf("\t*** Audio stream format type descriptor ***\n"); + printf("\tbLength %d\n", desc->bLength); + printf("\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); + printf("\tbFormatType %d\n", desc->bFormatType); + printf("\tbNrChannels %d\n", desc->bNrChannels); + printf("\tbSubframeSize %d\n", desc->bSubframeSize); + printf("\tbBitResolution %d\n", desc->bBitResolution); + printf("\tbSamFreqType %d\n", desc->bSamFreqType); + if (desc->bSamFreqType == 0) { + // Continuous Frame Intervals + const uint8_t *p_samfreq = desc->tSamFreq; + uint32_t min_samfreq = (p_samfreq[2] << 16) + (p_samfreq[1] << 8) + p_samfreq[0]; + uint32_t max_samfreq = (p_samfreq[5] << 16) + (p_samfreq[4] << 8) + p_samfreq[3]; + printf("\ttLowerSamFreq %"PRIu32"\n", min_samfreq); + printf("\ttUpperSamFreq %"PRIu32"\n", max_samfreq); + } else { + const uint8_t *p_samfreq = desc->tSamFreq; + for (int i = 0; i < desc->bSamFreqType; ++i) { + printf("\ttSamFreq[%d] %"PRIu32"\n", i, (uint32_t)((p_samfreq[3 * i + 2] << 16) + (p_samfreq[3 * i + 1] << 8) + p_samfreq[3 * i])); + } + } +} + +static void print_unknown_desc(const uac_desc_header_t *desc) +{ + printf("\t*** Unknown descriptor ***\n"); + printf("\tbLength %d\n", desc->bLength); + printf("\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); +} + +static void print_uac_class_descriptors(const usb_standard_desc_t *desc, uint8_t class, uint8_t subclass, uint8_t protocol) +{ + if (class != USB_CLASS_AUDIO) { + return; + } + const uint8_t *buff = (const uint8_t *)desc; + uac_desc_header_t *header = (uac_desc_header_t *)desc; + if (subclass == UAC_SUBCLASS_AUDIOCONTROL) { + switch (header->bDescriptorSubtype) { + case UAC_AC_HEADER: + print_ac_header_desc(buff); + break; + case UAC_AC_INPUT_TERMINAL: + print_ac_input_desc(buff); + break; + case UAC_AC_OUTPUT_TERMINAL: + print_ac_output_desc(buff); + break; + case UAC_AC_FEATURE_UNIT: + print_ac_feature_desc(buff); + break; + default: + goto unknown; + break; + } + } else if (subclass == UAC_SUBCLASS_AUDIOSTREAMING && desc->bDescriptorType == UAC_CS_INTERFACE) { + switch (header->bDescriptorSubtype) { + case UAC_AS_GENERAL: + parse_as_general_desc(buff); + break; + case UAC_AS_FORMAT_TYPE: + parse_as_type_desc(buff); + break; + default: + goto unknown; + break; + } + } else if (subclass == UAC_SUBCLASS_AUDIOSTREAMING && desc->bDescriptorType == UAC_CS_ENDPOINT) { + switch (header->bDescriptorSubtype) { + case UAC_EP_GENERAL: + parse_as_ep_general_desc(buff); + break; + default: + break; + } + } else { + printf("\tUnknown subclass 0x%x\n", subclass); + goto unknown; + } + return; +unknown: + print_unknown_desc(header); +} + +// Print the configuration descriptor and all its sub-descriptors with the given class-specific callback +// The subclass and protocol are passed to the class_specific_cb to allow it to interpret the descriptors more accurately +// This function better be added to usb_helpers.c +static void usb_print_config_descriptor_with_context(const usb_config_desc_t *cfg_desc, print_class_descriptor_with_context_cb class_specific_cb) +{ + int offset = 0; + uint16_t wTotalLength = cfg_desc->wTotalLength; + const usb_standard_desc_t *next_desc = (const usb_standard_desc_t *)cfg_desc; + uint8_t class = 0; + uint8_t subclass = 0; + uint8_t protocol = 0; + + do { + switch (next_desc->bDescriptorType) { + case USB_B_DESCRIPTOR_TYPE_CONFIGURATION: + usbh_print_cfg_desc((const usb_config_desc_t *)next_desc); + break; + case USB_B_DESCRIPTOR_TYPE_INTERFACE: { + const usb_intf_desc_t *intf_desc = (const usb_intf_desc_t *)next_desc; + usbh_print_intf_desc(intf_desc); + class = intf_desc->bInterfaceClass; + subclass = intf_desc->bInterfaceSubClass; + protocol = intf_desc->bInterfaceProtocol; + break; + } + case USB_B_DESCRIPTOR_TYPE_ENDPOINT: + print_ep_desc((const usb_ep_desc_t *)next_desc); + break; + case USB_B_DESCRIPTOR_TYPE_INTERFACE_ASSOCIATION: + print_iad_desc((const usb_iad_desc_t *)next_desc); + break; + default: + if (class_specific_cb) { + class_specific_cb(next_desc, class, subclass, protocol); + } + break; + } + + next_desc = usb_parse_next_descriptor(next_desc, wTotalLength, &offset); + + } while (next_desc != NULL); +} + +void print_uac_descriptors(const usb_config_desc_t *cfg_desc) +{ + usb_print_config_descriptor_with_context(cfg_desc, print_uac_class_descriptors); +} diff --git a/host/class/uac/usb_host_uac/uac_host.c b/host/class/uac/usb_host_uac/uac_host.c new file mode 100644 index 00000000..9326cf64 --- /dev/null +++ b/host/class/uac/usb_host_uac/uac_host.c @@ -0,0 +1,2105 @@ +/* + * SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "sdkconfig.h" +#include "esp_log.h" +#include "esp_check.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" +#include "freertos/ringbuf.h" +#include "usb/usb_host.h" +#include "usb/uac_host.h" +#include "usb/usb_types_ch9.h" + +// UAC spinlock +static portMUX_TYPE uac_lock = portMUX_INITIALIZER_UNLOCKED; +#define UAC_ENTER_CRITICAL() portENTER_CRITICAL(&uac_lock) +#define UAC_EXIT_CRITICAL() portEXIT_CRITICAL(&uac_lock) + +// UAC verification macros +#define UAC_GOTO_ON_FALSE_CRITICAL(exp, err) \ + do { \ + if(!(exp)) { \ + UAC_EXIT_CRITICAL(); \ + ret = err; \ + goto fail; \ + } \ + } while(0) + +#define UAC_RETURN_ON_FALSE_CRITICAL(exp, err) \ + do { \ + if(!(exp)) { \ + UAC_EXIT_CRITICAL(); \ + return err; \ + } \ + } while(0) + +#define UAC_GOTO_ON_ERROR(exp, msg) ESP_GOTO_ON_ERROR(exp, fail, TAG, msg) + +#define UAC_GOTO_ON_FALSE(exp, err, msg) ESP_GOTO_ON_FALSE((exp), err, fail, TAG, msg) + +#define UAC_RETURN_ON_ERROR(exp, msg) ESP_RETURN_ON_ERROR((exp), TAG, msg) + +#define UAC_RETURN_ON_FALSE(exp, err, msg) ESP_RETURN_ON_FALSE((exp), (err), TAG, msg) + +#define UAC_RETURN_ON_INVALID_ARG(exp) ESP_RETURN_ON_FALSE((exp) != NULL, ESP_ERR_INVALID_ARG, TAG, "Argument error") + +// USB Descriptor parsing helping macros +#define GET_NEXT_INTERFACE_DESC(p, max_len, offs) \ + ((const usb_intf_desc_t *)usb_parse_next_descriptor_of_type((const usb_standard_desc_t *)p, \ + max_len, \ + USB_B_DESCRIPTOR_TYPE_INTERFACE, \ + &(offs))) +#define GET_NEXT_UAC_CS_DESC(p, max_len, offs) \ + ((const uac_desc_header_t *)usb_parse_next_descriptor_of_type((const usb_standard_desc_t *)p, \ + max_len, \ + UAC_CS_INTERFACE, \ + &(offs))) +#define GET_NEXT_DESC(p, max_len, offs) \ + ((const usb_standard_desc_t *)usb_parse_next_descriptor((const usb_standard_desc_t *)p, \ + max_len, \ + &(offs))) + +static const char *TAG = "uac-host"; + +#define DEFAULT_CTRL_XFER_TIMEOUT_MS (5000) +#define DEFAULT_ISOC_XFER_TIMEOUT_MS (100) +#define UAC_SPK_VOLUME_MAX (0xfff0) +#define UAC_SPK_VOLUME_MIN (0xe3a0) +#define UAC_SPK_VOLUME_STEP ((UAC_SPK_VOLUME_MAX - UAC_SPK_VOLUME_MIN)/100) +#define INTERFACE_FLAGS_OFFSET (16) +#define FLAG_INTERFACE_WAIT_USER_DELETE (1 << INTERFACE_FLAGS_OFFSET) +#define UAC_EP_DIR_IN (0x80) + +/** + * @brief UAC Device structure. + * + */ +typedef struct uac_host_device { + // dynamic values after device opening, should be protected by critical section + STAILQ_ENTRY(uac_host_device) tailq_entry; /*!< UAC device queue */ + uint8_t opened_cnt; /*!< Device opened counter */ + // constant values after device opening + usb_device_handle_t dev_hdl; /*!< USB device handle */ + uint8_t addr; /*!< USB device address */ + SemaphoreHandle_t device_busy; /*!< UAC device main mutex */ + SemaphoreHandle_t ctrl_xfer_done; /*!< Control transfer semaphore */ + usb_transfer_t *ctrl_xfer; /*!< Pointer to control transfer buffer */ + uint8_t ctrl_iface_num; /*!< Control interface number */ + uint8_t input_terminal[UAC_STREAM_MAX]; /*!< Input terminal ID */ + uint8_t input_channel[UAC_STREAM_MAX]; /*!< Input channel ID */ + uint8_t output_terminal[UAC_STREAM_MAX]; /*!< Output terminal ID */ + uint8_t feature_unit[UAC_STREAM_MAX]; /*!< Feature unit ID */ + uint8_t mute_ch_map[UAC_STREAM_MAX]; /*!< Channel bitmap mark which channel support mute, + eg. 0x01 - 0b00000001 : channel 0 support mute */ + uint8_t vol_ch_map[UAC_STREAM_MAX]; /*!< Channel bitmap mark which channel support volume control, + eg. 0x03 - 0b00000011 : channel 0 and 1 support volume control */ +} uac_device_t; + +/** + * @brief UAC Interface state +*/ +typedef enum { + UAC_INTERFACE_STATE_NOT_INITIALIZED = 0x00, /*!< UAC Interface not initialized */ + UAC_INTERFACE_STATE_IDLE, /*!< UAC Interface has been opened but not started */ + UAC_INTERFACE_STATE_READY, /*!< UAC Interface has started but stream is suspended */ + UAC_INTERFACE_STATE_ACTIVE, /*!< UAC Interface is streaming */ + UAC_INTERFACE_STATE_MAX +} uac_iface_state_t; + +/** + * @brief UAC Interface alternate setting parameters + */ +typedef struct uac_interface_alt { + // variable only change by app operation, protected by mutex + uint32_t cur_sampling_freq; /*!< current sampling frequency */ + // constant values after interface opening + uint8_t alt_idx; /*!< audio stream alternate setting number */ + uint8_t ep_addr; /*!< audio stream endpoint number */ + uint16_t ep_mps; /*!< audio stream endpoint max size */ + uint8_t ep_attr; /*!< audio stream endpoint attributes */ + uint8_t interval; /*!< audio stream endpoint interval */ + uint8_t connected_terminal; /*!< connected terminal ID */ + bool freq_ctrl_supported; /*!< sampling frequency control supported */ + uac_host_dev_alt_param_t dev_alt_param; /*!< audio stream alternate setting parameters */ +} uac_iface_alt_t; + +/** + * @brief UAC Interface structure in device to interact with. After UAC device opening keeps the interface configuration + * + */ +typedef struct uac_interface { + // dynamic values after interface opening, should be protected by critical section + STAILQ_ENTRY(uac_interface) tailq_entry; + usb_transfer_t **xfer_list; /*!< Pointer to transfer list */ + usb_transfer_t **free_xfer_list; /*!< Pointer to free transfer list */ + // variable only change by app operation, protected by mutex + SemaphoreHandle_t state_mutex; /*!< UAC device state mutex */ + uac_iface_state_t state; /*!< Interface state */ + uint32_t flags; /*!< Interface flags */ + uint8_t cur_alt; /*!< Current alternate setting (-1) */ + // constant parameters after interface opening + uac_device_t *parent; /*!< Parent USB UAC device */ + uint8_t xfer_num; /*!< Number of transfers */ + uint8_t packet_num; /*!< packets per transfer */ + uint32_t packet_size; /*!< size of each packet */ + uac_host_device_event_cb_t user_cb; /*!< Interface application callback */ + void *user_cb_arg; /*!< Interface application callback arg */ + RingbufHandle_t ringbuf; /*!< Ring buffer for audio data */ + uint32_t ringbuf_size; /*!< Ring buffer size */ + uint32_t ringbuf_threshold; /*!< Ring buffer threshold */ + uac_host_dev_info_t dev_info; /*!< USB device parameters */ + uac_iface_alt_t *iface_alt; /*!< audio stream alternate setting */ +} uac_iface_t; + +/** + * @brief UAC driver default context + * + * This context is created during UAC Host install. + */ +typedef struct { + // dynamic values after UAC Host initialization, should be protected by critical section + STAILQ_HEAD(devices, uac_host_device) uac_devices_tailq; /*!< STAILQ of UAC interfaces */ + STAILQ_HEAD(interfaces, uac_interface) uac_ifaces_tailq; /*!< STAILQ of UAC interfaces */ + volatile bool end_client_event_handling; /*!< Client event handling flag */ + // constant values after UAC Host initialization + bool event_handling_started; /*!< Events handler started flag */ + usb_host_client_handle_t client_handle; /*!< Client task handle */ + uac_host_driver_event_cb_t user_cb; /*!< User application callback */ + void *user_arg; /*!< User application callback args */ + SemaphoreHandle_t all_events_handled; /*!< Events handler semaphore */ +} uac_driver_t; + +/** + * @brief UAC class specific request +*/ +typedef struct uac_cs_request { + uint8_t bmRequestType; /*!< bmRequestType */ + uint8_t bRequest; /*!< bRequest */ + uint16_t wValue; /*!< wValue: Report Type and Report ID */ + uint16_t wIndex; /*!< wIndex: Interface */ + uint16_t wLength; /*!< wLength: Report Length */ + uint8_t *data; /*!< Pointer to data */ +} uac_cs_request_t; + +static uac_driver_t *s_uac_driver; /*!< Internal pointer to UAC driver */ + +// ----------------------- Private Prototypes ---------------------------------- + +static esp_err_t _uac_host_device_add(uint8_t addr, usb_device_handle_t dev_hdl, const usb_config_desc_t *config_desc, uac_device_t **uac_device_handle); +static esp_err_t _uac_host_device_delete(uac_device_t *uac_device); +static esp_err_t uac_cs_request_set(uac_device_t *uac_device, const uac_cs_request_t *req); +static esp_err_t uac_cs_request_set_ep_frequency(uac_iface_t *iface, uint8_t ep_addr, uint32_t freq); + +// --------------------------- Buffer Management -------------------------------- +static size_t _ring_buffer_get_len(RingbufHandle_t ringbuf_hdl) +{ + assert(ringbuf_hdl); + size_t size = 0; + vRingbufferGetInfo(ringbuf_hdl, NULL, NULL, NULL, NULL, &size); + return size; +} + +static void _ring_buffer_flush(RingbufHandle_t ringbuf_hdl) +{ + assert(ringbuf_hdl); + size_t read_bytes = 0; + size_t uxItemsWaiting = 0; + vRingbufferGetInfo(ringbuf_hdl, NULL, NULL, NULL, NULL, &uxItemsWaiting); + uint8_t *buf_rcv = xRingbufferReceiveUpTo(ringbuf_hdl, &read_bytes, 0, uxItemsWaiting); + + if (buf_rcv) { + vRingbufferReturnItem(ringbuf_hdl, (void *)(buf_rcv)); + } + + if (uxItemsWaiting > read_bytes) { + // read the second time to flush all data + vRingbufferGetInfo(ringbuf_hdl, NULL, NULL, NULL, NULL, &uxItemsWaiting); + buf_rcv = xRingbufferReceiveUpTo(ringbuf_hdl, &read_bytes, 0, uxItemsWaiting); + if (buf_rcv) { + vRingbufferReturnItem(ringbuf_hdl, (void *)(buf_rcv)); + } + } +} + +static esp_err_t _ring_buffer_push(RingbufHandle_t ringbuf_hdl, uint8_t *buf, size_t write_bytes, TickType_t xTicksToWait) +{ + assert(ringbuf_hdl && buf); + int res = xRingbufferSend(ringbuf_hdl, buf, write_bytes, xTicksToWait); + + if (res != pdTRUE) { + ESP_LOGD(TAG, "buffer is too small, push failed"); + return ESP_FAIL; + } + return ESP_OK; +} + +static esp_err_t _ring_buffer_pop(RingbufHandle_t ringbuf_hdl, uint8_t *buf, size_t req_bytes, size_t *read_bytes, TickType_t ticks_to_wait) +{ + assert(ringbuf_hdl && buf && read_bytes); + uint8_t *buf_rcv = xRingbufferReceiveUpTo(ringbuf_hdl, read_bytes, ticks_to_wait, req_bytes); + + if (!buf_rcv) { + return ESP_FAIL; + } + + memcpy(buf, buf_rcv, *read_bytes); + vRingbufferReturnItem(ringbuf_hdl, (void *)(buf_rcv)); + + size_t read_bytes2 = 0; + if (*read_bytes < req_bytes) { + buf_rcv = xRingbufferReceiveUpTo(ringbuf_hdl, &read_bytes2, 0, req_bytes - *read_bytes); + if (buf_rcv) { + memcpy(buf + *read_bytes, buf_rcv, read_bytes2); + *read_bytes += read_bytes2; + vRingbufferReturnItem(ringbuf_hdl, (void *)(buf_rcv)); + } + } + + return ESP_OK; +} + +/** + * @brief UAC Host driver event handler internal task + * + */ +static void event_handler_task(void *arg) +{ + ESP_LOGD(TAG, "USB UAC handling start"); + while (uac_host_handle_events(portMAX_DELAY) == ESP_OK) { + } + ESP_LOGD(TAG, "USB UAC handling stop"); + vTaskDelete(NULL); +} + +/** + * @brief Return UAC device in devices list by USB device handle + * + * @param[in] usb_device_handle_t USB device handle + * @return uac_device_t Pointer to device, NULL if device not present + */ +static uac_device_t *get_uac_device_by_handle(usb_device_handle_t usb_handle) +{ + uac_device_t *device = NULL; + + UAC_ENTER_CRITICAL(); + STAILQ_FOREACH(device, &s_uac_driver->uac_devices_tailq, tailq_entry) { + if (usb_handle == device->dev_hdl) { + UAC_EXIT_CRITICAL(); + return device; + } + } + UAC_EXIT_CRITICAL(); + return NULL; +} + +/** + * @brief Return UAC Device from usb address + * @param[in] addr USB device address + * @return uac_device_t Pointer to UAC Device + */ +static uac_device_t *get_uac_device_by_addr(uint8_t addr) +{ + uac_device_t *device = NULL; + + UAC_ENTER_CRITICAL(); + STAILQ_FOREACH(device, &s_uac_driver->uac_devices_tailq, tailq_entry) { + if (addr == device->addr) { + UAC_EXIT_CRITICAL(); + return device; + } + } + UAC_EXIT_CRITICAL(); + return NULL; +} + + +/** + * @brief Get UAC Interface pointer by Interface number + * + * @param[in] addr USB device address + * @param[in] iface_num Interface number + * @return uac_iface_t Pointer to UAC Interface configuration structure + */ +static uac_iface_t *get_interface_by_addr(uint8_t addr, uint8_t iface_num) +{ + uac_iface_t *interface = NULL; + + UAC_ENTER_CRITICAL(); + STAILQ_FOREACH(interface, &s_uac_driver->uac_ifaces_tailq, tailq_entry) { + if (addr == interface->dev_info.addr && iface_num == interface->dev_info.iface_num) { + UAC_EXIT_CRITICAL(); + return interface; + } + } + + UAC_EXIT_CRITICAL(); + return NULL; +} + +/** + * @brief Verify presence of Interface in the RAM list + * + * @param[in] iface Pointer to an Interface structure + * @return true Interface is in the list + * @return false Interface is not in the list + */ +static inline bool is_interface_in_list(uac_iface_t *iface) +{ + uac_iface_t *interface = NULL; + + UAC_ENTER_CRITICAL(); + STAILQ_FOREACH(interface, &s_uac_driver->uac_ifaces_tailq, tailq_entry) { + if (iface == interface) { + UAC_EXIT_CRITICAL(); + return true; + } + } + + UAC_EXIT_CRITICAL(); + return false; +} + +/** + * @brief Get UAC Interface pointer by external UAC Device handle with verification in RAM list + * + * @param[in] uac_dev_handle UAC Device handle + * @return uac_iface_t Pointer to an Interface structure + */ +static uac_iface_t *get_iface_by_handle(uac_host_device_handle_t uac_dev_handle) +{ + uac_iface_t *uac_iface = (uac_iface_t *) uac_dev_handle; + + if (!is_interface_in_list(uac_iface)) { + ESP_LOGE(TAG, "UAC interface handle not found"); + return NULL; + } + + return uac_iface; +} + +/** + * @brief Check UAC interface descriptor present + * + * @param[in] config_desc Pointer to Configuration Descriptor + * @return esp_err_t + */ +static bool uac_interface_present(const usb_config_desc_t *config_desc) +{ + assert(config_desc); + int offset = 0; + int total_len = config_desc->wTotalLength; + const usb_intf_desc_t *iface_desc = GET_NEXT_INTERFACE_DESC(config_desc, total_len, offset); + while (iface_desc != NULL) { + if (USB_CLASS_AUDIO == iface_desc->bInterfaceClass) { + return true; + } + iface_desc = GET_NEXT_INTERFACE_DESC(iface_desc, total_len, offset); + } + return false; +} + +/** + * @brief UAC Interface user callback function. + * + * @param[in] uac_iface Pointer to an Interface structure + * @param[in] event UAC Interface event + */ +static inline void uac_host_user_interface_callback(uac_iface_t *uac_iface, const uac_host_device_event_t event) +{ + assert(uac_iface); + // user callback should never block + if (uac_iface->user_cb) { + uac_iface->user_cb(uac_iface, event, uac_iface->user_cb_arg); + } +} + +/** + * @brief UAC Device user callback function. + * + * @param[in] event_id UAC Device event + * @param[in] event UAC Device event + */ +static inline void uac_host_user_device_callback(uint8_t addr, uint8_t iface_num, const uac_host_driver_event_t event) +{ + if (s_uac_driver && s_uac_driver->user_cb) { + s_uac_driver->user_cb(addr, iface_num, event, s_uac_driver->user_arg); + } +} + +static esp_err_t uac_host_string_descriptor_copy(wchar_t *dest, const usb_str_desc_t *src) +{ + if (dest == NULL) { + return ESP_ERR_INVALID_ARG; + } + if (src != NULL) { + size_t len = MIN((src->bLength - USB_STANDARD_DESC_SIZE) / 2, UAC_STR_DESC_MAX_LENGTH - 1); + for (int i = 0; i < len; i++) { + dest[i] = (wchar_t) src->wData[i]; + } + // This should be always true, we just check to avoid LoadProhibited exception + if (dest != NULL) { + dest[len] = 0; + } + } else { + dest[0] = 0; + } + return ESP_OK; +} + +/** Lock UAC interface when user tries to change the interface state + * + * @param[in] iface Pointer to UAC interface structure + * @param[in] timeout_ms Timeout of trying to take the mutex + * @return esp_err_t + */ +static inline esp_err_t uac_host_interface_try_lock(uac_iface_t *iface, uint32_t timeout_ms) +{ + return (xSemaphoreTake(iface->state_mutex, pdMS_TO_TICKS(timeout_ms)) ? ESP_OK : ESP_ERR_TIMEOUT); +} + +/** Unlock UAC interface when user changes the interface state + * + * @param[in] iface Pointer to UAC interface structure + * @return esp_err_t + */ +static inline esp_err_t uac_host_interface_unlock(uac_iface_t *iface) +{ + return (xSemaphoreGive(iface->state_mutex) ? ESP_OK : ESP_FAIL); +} + +/** + * @brief Add a new logical device/interface to the UAC driver + * @param[in] iface_num Interface number + * @param[out] p_uac_iface Pointer to the UAC interface handle + * @return esp_err_t + */ +static esp_err_t uac_host_interface_add(uac_device_t *uac_device, uint8_t iface_num, uac_iface_t **p_uac_iface) +{ + esp_err_t ret; + *p_uac_iface = NULL; + uac_iface_t *uac_iface = calloc(1, sizeof(uac_iface_t)); + UAC_RETURN_ON_FALSE(uac_iface, ESP_ERR_NO_MEM, "Unable to allocate memory"); + uac_iface->state_mutex = xSemaphoreCreateMutex(); + UAC_GOTO_ON_FALSE(uac_iface->state_mutex, ESP_ERR_NO_MEM, "Unable to create state mutex"); + const usb_config_desc_t *config_desc = NULL; + const usb_intf_desc_t *iface_desc = NULL; + const usb_intf_desc_t *iface_alt_desc = NULL; + const usb_ep_desc_t *ep_desc = NULL; + const usb_standard_desc_t *cs_desc = NULL; + + usb_host_get_active_config_descriptor(uac_device->dev_hdl, &config_desc); + UAC_GOTO_ON_FALSE(config_desc, ESP_ERR_INVALID_STATE, "No active configuration descriptor"); + const size_t total_length = config_desc->wTotalLength; + int iface_alt_offset = 0; + int iface_alt_idx = 0; + + iface_desc = usb_parse_interface_descriptor(config_desc, iface_num, 0, &iface_alt_offset); + iface_alt_desc = GET_NEXT_INTERFACE_DESC(iface_desc, total_length, iface_alt_offset); + // For every alternate setting + while (iface_alt_desc != NULL) { + // Check if the alternate setting is for the same interface + if (iface_alt_desc->bInterfaceNumber != iface_desc->bInterfaceNumber) { + break; + } + ESP_LOGD(TAG, "Found UAC bInterfaceNumber= %d, bAlternateSetting= %d", + iface_alt_desc->bInterfaceNumber, iface_alt_desc->bAlternateSetting); + iface_alt_idx++; + // Allocate memory for the alternate setting + uac_iface->iface_alt = realloc(uac_iface->iface_alt, iface_alt_idx * sizeof(uac_iface_alt_t)); + UAC_GOTO_ON_FALSE(uac_iface->iface_alt, ESP_ERR_NO_MEM, "Unable to allocate memory"); + uac_iface_alt_t *iface_alt = &uac_iface->iface_alt[iface_alt_idx - 1]; + iface_alt->alt_idx = iface_alt_desc->bAlternateSetting; + // Parse each descriptor following the alternate interface descriptor + int cs_offset = iface_alt_offset; + cs_desc = GET_NEXT_DESC(iface_alt_desc, total_length, cs_offset); + bool parse_continue = true; + while (cs_desc != NULL && parse_continue) { + switch (cs_desc->bDescriptorType) { + case UAC_CS_INTERFACE: { + const uac_desc_header_t *uac_desc = (const uac_desc_header_t *)cs_desc; + if (uac_desc->bDescriptorSubtype == UAC_AS_GENERAL) { + const uac_as_general_desc_t *as_general_desc = (const uac_as_general_desc_t *)uac_desc; + iface_alt->dev_alt_param.format = as_general_desc->wFormatTag; + iface_alt->connected_terminal = as_general_desc->bTerminalLink; + // connected terminal can only be RX input or TX output terminal + if (iface_alt->connected_terminal == uac_device->output_terminal[UAC_STREAM_RX]) { + iface_alt->dev_alt_param.channels = uac_device->input_channel[UAC_STREAM_RX]; + // set the interface type to RX, used to check the interface supported feature + uac_iface->dev_info.type = UAC_STREAM_RX; + ESP_LOGD(TAG, "RX: UAC AS connected terminal %d", as_general_desc->bTerminalLink); + } else if (iface_alt->connected_terminal == uac_device->input_terminal[UAC_STREAM_TX]) { + iface_alt->dev_alt_param.channels = uac_device->input_channel[UAC_STREAM_TX]; + uac_iface->dev_info.type = UAC_STREAM_TX; + ESP_LOGD(TAG, "TX: UAC AS connected terminal %d", as_general_desc->bTerminalLink); + } else { + ESP_LOGE(TAG, "UAC AS connected terminal %d", as_general_desc->bTerminalLink); + UAC_GOTO_ON_FALSE(0, ESP_ERR_NOT_SUPPORTED, "UAC AS General connected terminal not exist"); + } + } else if (uac_desc->bDescriptorSubtype == UAC_AS_FORMAT_TYPE) { + const uac_as_type_I_format_desc_t *as_format_type_desc = (const uac_as_type_I_format_desc_t *)uac_desc; + if (as_format_type_desc->bFormatType != UAC_FORMAT_TYPE_I) { + ESP_LOGE(TAG, "UAC Format Type %d", as_format_type_desc->bFormatType); + UAC_GOTO_ON_FALSE(0, ESP_ERR_NOT_SUPPORTED, "UAC Format Type not supported"); + } + UAC_GOTO_ON_FALSE(iface_alt->dev_alt_param.channels == as_format_type_desc->bNrChannels, ESP_ERR_INVALID_STATE, "UAC AS Format Type channels not match"); + iface_alt->dev_alt_param.bit_resolution = as_format_type_desc->bBitResolution; + iface_alt->dev_alt_param.sample_freq_type = as_format_type_desc->bSamFreqType; + if (as_format_type_desc->bSamFreqType == 0) { + iface_alt->dev_alt_param.sample_freq_lower = (as_format_type_desc->tSamFreq[2] << 16) | (as_format_type_desc->tSamFreq[1] << 8) | as_format_type_desc->tSamFreq[0]; + iface_alt->dev_alt_param.sample_freq_upper = (as_format_type_desc->tSamFreq[5] << 16) | (as_format_type_desc->tSamFreq[4] << 8) | as_format_type_desc->tSamFreq[3]; + } else { + for (int i = 0; i < as_format_type_desc->bSamFreqType && i < UAC_FREQ_NUM_MAX; i++) { + iface_alt->dev_alt_param.sample_freq[i] = (as_format_type_desc->tSamFreq[i * 3 + 2] << 16) | (as_format_type_desc->tSamFreq[i * 3 + 1] << 8) | as_format_type_desc->tSamFreq[i * 3]; + } + if (as_format_type_desc->bSamFreqType > UAC_FREQ_NUM_MAX) { + ESP_LOGW(TAG, "UAC Interface %d->%d, Frequency Number %d exceed the maximum %d", iface_desc->bInterfaceNumber, iface_alt->alt_idx, as_format_type_desc->bSamFreqType, UAC_FREQ_NUM_MAX); + } + } + ESP_LOGD(TAG, "UAC AS Format Type %d, Bit Resolution %d, Sample Freq Type %d", as_format_type_desc->bFormatType, as_format_type_desc->bBitResolution, as_format_type_desc->bSamFreqType); + } else { + ESP_LOGW(TAG, "UAC CS bDescriptorSubtype=%d not supported", uac_desc->bDescriptorSubtype); + } + break; + } + case USB_B_DESCRIPTOR_TYPE_ENDPOINT: { + ep_desc = (const usb_ep_desc_t *)cs_desc; + iface_alt->ep_addr = ep_desc->bEndpointAddress; + iface_alt->ep_mps = ep_desc->wMaxPacketSize; + iface_alt->ep_attr = ep_desc->bmAttributes; + iface_alt->interval = ep_desc->bInterval; + ESP_LOGD(TAG, "UAC Endpoint 0x%02X, Max Packet Size %d, Attributes 0x%02X, Interval %d", ep_desc->bEndpointAddress, ep_desc->wMaxPacketSize, ep_desc->bmAttributes, ep_desc->bInterval); + break; + } + case UAC_CS_ENDPOINT: { + // we has got enough information to fill the uac_iface_alt_t, so we can break + const uac_as_cs_ep_desc_t *cs_ep_desc = (const uac_as_cs_ep_desc_t *)cs_desc; + if (cs_ep_desc->bDescriptorSubtype == UAC_EP_GENERAL) { + iface_alt->freq_ctrl_supported = cs_ep_desc->bmAttributes & UAC_SAMPLING_FREQ_CONTROL; + parse_continue = false; + ESP_LOGD(TAG, "UAC EP General, Attributes 0x%02X", cs_ep_desc->bmAttributes); + ESP_LOGD(TAG, "UAC EP Frequency Control %d", iface_alt->freq_ctrl_supported); + } + break; + } + default: + break; + } + cs_desc = GET_NEXT_DESC(cs_desc, total_length, cs_offset); + } + // Get next alternate setting + iface_alt_desc = GET_NEXT_INTERFACE_DESC(iface_alt_desc, total_length, iface_alt_offset); + } + uac_iface->state = UAC_INTERFACE_STATE_NOT_INITIALIZED; + uac_iface->parent = uac_device; + uac_iface->dev_info.addr = uac_device->addr; + uac_iface->dev_info.iface_num = iface_desc->bInterfaceNumber; + uac_iface->dev_info.iface_alt_num = iface_alt_idx; + ESP_LOGD(TAG, "UAC Interface %d, found total alternate %d", iface_desc->bInterfaceNumber, iface_alt_idx); + + // Fill descriptor device information + const usb_device_desc_t *desc; + usb_device_info_t dev_info; + UAC_GOTO_ON_ERROR(usb_host_get_device_descriptor(uac_device->dev_hdl, &desc), "Unable to get device descriptor"); + UAC_GOTO_ON_ERROR(usb_host_device_info(uac_device->dev_hdl, &dev_info), "Unable to get USB device info"); + // VID, PID + uac_iface->dev_info.VID = desc->idVendor; + uac_iface->dev_info.PID = desc->idProduct; + // Strings + uac_host_string_descriptor_copy(uac_iface->dev_info.iManufacturer, dev_info.str_desc_manufacturer); + uac_host_string_descriptor_copy(uac_iface->dev_info.iProduct, dev_info.str_desc_product); + uac_host_string_descriptor_copy(uac_iface->dev_info.iSerialNumber, dev_info.str_desc_serial_num); + + *p_uac_iface = uac_iface; + + UAC_ENTER_CRITICAL(); + STAILQ_INSERT_TAIL(&s_uac_driver->uac_ifaces_tailq, uac_iface, tailq_entry); + UAC_EXIT_CRITICAL(); + + return ESP_OK; + +fail: + if (uac_iface && uac_iface->state_mutex) { + vSemaphoreDelete(uac_iface->state_mutex); + } + free(uac_iface->iface_alt); + free(uac_iface); + return ret; +} + +/** + * @brief Remove interface from a list + * + * + * @param[in] uac_iface UAC interface handle + * @return esp_err_t + */ +static esp_err_t uac_host_interface_delete(uac_iface_t *uac_iface) +{ + uac_iface->state = UAC_INTERFACE_STATE_NOT_INITIALIZED; + UAC_ENTER_CRITICAL(); + STAILQ_REMOVE(&s_uac_driver->uac_ifaces_tailq, uac_iface, uac_interface, tailq_entry); + UAC_EXIT_CRITICAL(); + vSemaphoreDelete(uac_iface->state_mutex); + free(uac_iface->iface_alt); + free(uac_iface); + return ESP_OK; +} + +/** + * @brief Check every interface in the USB device, notify user about connected interfaces/logic devices + * + * @param[in] addr USB device address + * @param[in] config_desc Pointer to Configuration Descriptor + * @return esp_err_t + * @retval ESP_OK UAC Interface found + * @retval ESP_ERR_NOT_FOUND UAC Interface not found + */ +static esp_err_t uac_host_interface_check(uint8_t addr, const usb_config_desc_t *config_desc) +{ + assert(config_desc); + size_t total_length = config_desc->wTotalLength; + const usb_intf_desc_t *iface_desc = NULL; + int iface_offset = 0; + bool is_uac_interface = false; + + // Get first Interface descriptor + iface_desc = GET_NEXT_INTERFACE_DESC(config_desc, total_length, iface_offset); + // Check every uac stream interface + while (iface_desc != NULL) { + if (iface_desc->bInterfaceClass == USB_CLASS_AUDIO && iface_desc->bInterfaceSubClass == UAC_SUBCLASS_AUDIOSTREAMING) { + // notify user about the connected Interfaces + is_uac_interface = true; + const usb_intf_desc_t *iface_alt_desc = GET_NEXT_INTERFACE_DESC(iface_desc, total_length, iface_offset); + int ep_offset = iface_offset; + const usb_ep_desc_t *ep_desc = usb_parse_endpoint_descriptor_by_index(iface_alt_desc, 0, total_length, &ep_offset); + if (ep_desc == NULL) { + ESP_LOGW(TAG, "No endpoint descriptor found"); + } else if (ep_desc->bEndpointAddress & UAC_EP_DIR_IN) { + // notify user about the connected Interfaces + uac_host_user_device_callback(addr, iface_desc->bInterfaceNumber, UAC_HOST_DRIVER_EVENT_RX_CONNECTED); + } else { + // notify user about the connected Interfaces + uac_host_user_device_callback(addr, iface_desc->bInterfaceNumber, UAC_HOST_DRIVER_EVENT_TX_CONNECTED); + } + // Skip all alternate settings belonging to the current interface + while (iface_alt_desc != NULL) { + // Check if the alternate setting is for the same interface + if (iface_alt_desc->bInterfaceNumber != iface_desc->bInterfaceNumber) { + break; + } + iface_alt_desc = GET_NEXT_INTERFACE_DESC(iface_alt_desc, total_length, iface_offset); + } + iface_desc = iface_alt_desc; + continue; + } + iface_desc = GET_NEXT_INTERFACE_DESC(iface_desc, total_length, iface_offset); + } + + return is_uac_interface ? ESP_OK : ESP_ERR_NOT_FOUND; +} + +/** + * @brief Handler for USB device connected event + * + * @param[in] addr USB device physical address + * @return esp_err_t + */ +static esp_err_t _uac_host_device_connected(uint8_t addr) +{ + bool is_uac_device = false; + usb_device_handle_t dev_hdl; + const usb_config_desc_t *config_desc = NULL; + + if (usb_host_device_open(s_uac_driver->client_handle, addr, &dev_hdl) == ESP_OK) { + if (usb_host_get_active_config_descriptor(dev_hdl, &config_desc) == ESP_OK) { + is_uac_device = uac_interface_present(config_desc); + } + UAC_RETURN_ON_ERROR(usb_host_device_close(s_uac_driver->client_handle, dev_hdl), "Unable to close USB device"); + } + + // Create UAC interfaces list in RAM, connected to the particular USB dev + if (is_uac_device) { +#ifdef CONFIG_PRINTF_UAC_CONFIGURATION_DESCRIPTOR + print_uac_descriptors(config_desc); +#endif + // Create Interfaces list for a possibility to claim Interface + UAC_RETURN_ON_ERROR(uac_host_interface_check(addr, config_desc), "uac stream interface not found"); + } else { + ESP_LOGW(TAG, "USB device with addr(%d) is not UAC device", addr); + } + + return is_uac_device ? ESP_OK : ESP_ERR_NOT_FOUND; +} + +/** + * @brief USB device was removed we need to shutdown UAC Interface + * + * @param[in] uac_dev_handle Handle of the UAC device to close + * @return esp_err_t + */ +static esp_err_t uac_host_interface_shutdown(uac_host_device_handle_t uac_dev_handle) +{ + uac_iface_t *uac_iface = get_iface_by_handle(uac_dev_handle); + + UAC_RETURN_ON_INVALID_ARG(uac_iface); + + if (uac_iface->user_cb) { + // Let user handle the remove process + // clear the flag FLAG_INTERFACE_WAIT_USER_DELETE; + uac_iface->flags &= ~FLAG_INTERFACE_WAIT_USER_DELETE; + uac_host_user_interface_callback(uac_iface, UAC_HOST_DRIVER_EVENT_DISCONNECTED); + } else { + // Remove UAC Interface from the list right now + uac_iface->flags &= ~FLAG_INTERFACE_WAIT_USER_DELETE; + uac_host_device_close(uac_dev_handle); + } + + return ESP_OK; +} + +/** + * @brief Handler for USB device disconnected event + * + * @param[in] dev_hdl USB device handle + * @return esp_err_t + */ +static esp_err_t _uac_host_device_disconnected(usb_device_handle_t dev_hdl) +{ + uac_device_t *uac_device = get_uac_device_by_handle(dev_hdl); + uac_iface_t *uac_iface = NULL; + // Device should be in the list + assert(uac_device); + + UAC_ENTER_CRITICAL(); + while (!STAILQ_EMPTY(&s_uac_driver->uac_ifaces_tailq)) { + uac_iface = STAILQ_FIRST(&s_uac_driver->uac_ifaces_tailq); + UAC_EXIT_CRITICAL(); + if (uac_iface->parent && (uac_iface->parent->addr == uac_device->addr)) { + uac_iface->flags |= FLAG_INTERFACE_WAIT_USER_DELETE; + UAC_RETURN_ON_ERROR(uac_host_device_close(uac_iface), "Unable to close device"); + UAC_RETURN_ON_ERROR(uac_host_interface_shutdown(uac_iface), "Unable to shutdown interface"); + } + UAC_ENTER_CRITICAL(); + } + UAC_EXIT_CRITICAL(); + + return ESP_OK; +} + +/** + * @brief USB Host Client's event callback + * + * @param[in] event Client event message + * @param[in] arg Argument, does not used + */ +static void client_event_cb(const usb_host_client_event_msg_t *event, void *arg) +{ + if (event->event == USB_HOST_CLIENT_EVENT_NEW_DEV) { + _uac_host_device_connected(event->new_dev.address); + } else if (event->event == USB_HOST_CLIENT_EVENT_DEV_GONE) { + _uac_host_device_disconnected(event->dev_gone.dev_hdl); + } +} + +/** + * @brief UAC Host release Interface and free transfers, change state to IDLE + * + * @param[in] iface Pointer to Interface structure, + * @return esp_err_t + */ +static esp_err_t uac_host_interface_release_and_free_transfer(uac_iface_t *iface) +{ + UAC_RETURN_ON_INVALID_ARG(iface); + UAC_RETURN_ON_INVALID_ARG(iface->parent); + + UAC_RETURN_ON_FALSE(is_interface_in_list(iface), ESP_ERR_NOT_FOUND, "Interface handle not found"); + UAC_RETURN_ON_ERROR(usb_host_interface_release(s_uac_driver->client_handle, iface->parent->dev_hdl, iface->dev_info.iface_num), "Unable to release UAC Interface"); + + if (iface->free_xfer_list) { + for (int i = 0; i < iface->xfer_num; i++) { + if (iface->free_xfer_list[i]) { + ESP_ERROR_CHECK(usb_host_transfer_free(iface->free_xfer_list[i])); + } + } + free(iface->free_xfer_list); + } + + if (iface->xfer_list) { + for (int i = 0; i < iface->xfer_num; i++) { + if (iface->xfer_list[i]) { + ESP_ERROR_CHECK(usb_host_transfer_free(iface->xfer_list[i])); + } + } + free(iface->xfer_list); + } + + // Change state + iface->state = UAC_INTERFACE_STATE_IDLE; + return ESP_OK; +} + +/** + * @brief UAC Host claim Interface and prepare transfer, change state to READY + * + * @param[in] iface Pointer to Interface structure, + * @return esp_err_t + */ +static esp_err_t uac_host_interface_claim_and_prepare_transfer(uac_iface_t *iface) +{ + esp_err_t ret = ESP_OK; + // Claim Interface + + UAC_RETURN_ON_ERROR(usb_host_interface_claim(s_uac_driver->client_handle, iface->parent->dev_hdl, iface->dev_info.iface_num, + iface->cur_alt + 1), "Unable to claim Interface"); + // alloc a list of usb transfer + uint32_t packet_size = iface->iface_alt[iface->cur_alt].ep_mps; + iface->xfer_list = calloc(iface->xfer_num, sizeof(usb_transfer_t *)); + UAC_GOTO_ON_FALSE(iface->xfer_list, ESP_ERR_NO_MEM, "Unable to allocate transfer list"); + iface->free_xfer_list = calloc(iface->xfer_num, sizeof(usb_transfer_t *)); + UAC_GOTO_ON_FALSE(iface->free_xfer_list, ESP_ERR_NO_MEM, "Unable to allocate free transfer list"); + for (int i = 0; i < iface->xfer_num; i++) { + UAC_GOTO_ON_ERROR(usb_host_transfer_alloc(packet_size * iface->packet_num, iface->packet_num, &iface->free_xfer_list[i]), + "Unable to allocate transfer buffer for EP IN"); + } + // Change state + iface->state = UAC_INTERFACE_STATE_READY; + return ESP_OK; + +fail: + uac_host_interface_release_and_free_transfer(iface); + return ret; +} + +/** + * @brief UAC IN Transfer complete callback + * + * @param[in] transfer Pointer to transfer data structure + */ +static void stream_rx_xfer_done(usb_transfer_t *in_xfer) +{ + assert(in_xfer); + + uac_iface_t *iface = in_xfer->context; + assert(iface); + + if (iface->state != UAC_INTERFACE_STATE_ACTIVE) { + in_xfer->status = USB_TRANSFER_STATUS_CANCELED; + } + + switch (in_xfer->status) { + case USB_TRANSFER_STATUS_COMPLETED: { + + // if ringbuffer will overflow, notify user to read data + size_t data_len = _ring_buffer_get_len(iface->ringbuf); + if (data_len + in_xfer->actual_num_bytes >= iface->ringbuf_size) { + uac_host_user_interface_callback(iface, UAC_HOST_DEVICE_EVENT_RX_DONE); + } + + // if ringbuffer overflow (happens if user not read in above callback), the data will be dropped + data_len = _ring_buffer_get_len(iface->ringbuf); + if (data_len + in_xfer->actual_num_bytes > iface->ringbuf_size) { + ESP_LOGD(TAG, "RX Ringbuffer overflow"); + } else { + // else push data to ringbuffer + for (int i = 0; i < in_xfer->num_isoc_packets; i++) { + if (in_xfer->isoc_packet_desc[i].status != USB_TRANSFER_STATUS_COMPLETED) { + // copy data to ringbuffer + ESP_LOGD(TAG, "Bad RX Isoc packet %d status %d", i, in_xfer->isoc_packet_desc[i].status); + continue; + } + int requested_num_bytes = in_xfer->isoc_packet_desc[i].num_bytes; + int actual_num_bytes = in_xfer->isoc_packet_desc[i].actual_num_bytes; + // in UAC, the actual_num_bytes may less than requested_num_bytes + // eg. the packet_size is 64, but the endpoint size is 100 + assert(requested_num_bytes >= actual_num_bytes); + // copy data to ringbuffer + _ring_buffer_push(iface->ringbuf, in_xfer->data_buffer + i * requested_num_bytes, actual_num_bytes, 0); + } + } + // Relaunch transfer + usb_host_transfer_submit(in_xfer); + + // if ringbuffer is reach the threshold, notify user to read out + data_len = _ring_buffer_get_len(iface->ringbuf); + if (data_len >= iface->ringbuf_threshold) { + uac_host_user_interface_callback(iface, UAC_HOST_DEVICE_EVENT_RX_DONE); + } + + return; + } + case USB_TRANSFER_STATUS_NO_DEVICE: + case USB_TRANSFER_STATUS_CANCELED: + // User is notified about device disconnection from usb_event_cb + // No need to do anything + return; + default: + // Any other error + break; + } + + ESP_LOGE(TAG, "Transfer failed, status %d", in_xfer->status); + // Notify user about transfer or any other error + uac_host_user_interface_callback(iface, UAC_HOST_DEVICE_EVENT_TRANSFER_ERROR); +} + +static void stream_tx_xfer_submit(usb_transfer_t *out_xfer) +{ + uac_iface_t *iface = out_xfer->context; + assert(iface); + + size_t data_len = _ring_buffer_get_len(iface->ringbuf); + if (data_len >= iface->packet_size * iface->packet_num) { + data_len = iface->packet_size * iface->packet_num; + size_t actual_num_bytes = 0; + _ring_buffer_pop(iface->ringbuf, out_xfer->data_buffer, data_len, &actual_num_bytes, 0); + assert(actual_num_bytes == data_len); + // Relaunch transfer, as the pipe state may change + // the transfer may fail eg. the device is disconnected or the pipe is suspended + // the data in ringbuffer will be dropped without notify user + usb_host_transfer_submit(out_xfer); + data_len = _ring_buffer_get_len(iface->ringbuf); + if (data_len <= iface->ringbuf_threshold) { + // Notify user send done + uac_host_user_interface_callback(iface, UAC_HOST_DEVICE_EVENT_TX_DONE); + } + } else { + // add the transfer to free list + UAC_ENTER_CRITICAL(); + for (int i = 0; i < iface->xfer_num; i++) { + if (iface->xfer_list[i] == out_xfer) { + iface->free_xfer_list[i] = out_xfer; + iface->xfer_list[i] = NULL; + break; + } + } + UAC_EXIT_CRITICAL(); + // Notify user send done + uac_host_user_interface_callback(iface, UAC_HOST_DEVICE_EVENT_TX_DONE); + } +} + +/** + * @brief UAC OUT Transfer complete callback + * + * @param[in] transfer Pointer to transfer data structure + */ +static void stream_tx_xfer_done(usb_transfer_t *out_xfer) +{ + assert(out_xfer); + + uac_iface_t *iface = out_xfer->context; + assert(iface); + + // If the iface is not active, cancel the transfer + if (iface->state != UAC_INTERFACE_STATE_ACTIVE) { + out_xfer->status = USB_TRANSFER_STATUS_CANCELED; + } + + switch (out_xfer->status) { + case USB_TRANSFER_STATUS_COMPLETED: { + // Submit the next transfer + stream_tx_xfer_submit(out_xfer); + return; + } + case USB_TRANSFER_STATUS_NO_DEVICE: + case USB_TRANSFER_STATUS_CANCELED: + // User is notified about device disconnection from usb_event_cb + // No need to do anything + return; + default: + // Any other error, add the transfer to free list + UAC_ENTER_CRITICAL(); + for (int i = 0; i < iface->xfer_num; i++) { + if (iface->xfer_list[i] == out_xfer) { + iface->free_xfer_list[i] = out_xfer; + iface->xfer_list[i] = NULL; + break; + } + } + UAC_EXIT_CRITICAL(); + break; + } + + ESP_LOGE(TAG, "Transfer failed, status %d", out_xfer->status); + // Notify user about transfer or any other error + uac_host_user_interface_callback(iface, UAC_HOST_DEVICE_EVENT_TRANSFER_ERROR); +} + +/** + * @brief Suspend active interface, the interface will be in READY state + * + * @param[in] iface Pointer to Interface structure + * @return esp_err_t + */ +static esp_err_t uac_host_interface_suspend(uac_iface_t *iface) +{ + UAC_RETURN_ON_INVALID_ARG(iface); + UAC_RETURN_ON_INVALID_ARG(iface->parent); + UAC_RETURN_ON_INVALID_ARG(iface->free_xfer_list); + UAC_RETURN_ON_FALSE(is_interface_in_list(iface), ESP_ERR_NOT_FOUND, "Interface handle not found"); + UAC_RETURN_ON_FALSE((UAC_INTERFACE_STATE_ACTIVE == iface->state), ESP_ERR_INVALID_STATE, "Interface wrong state"); + + // Set Interface alternate setting to 0 + usb_setup_packet_t request; + USB_SETUP_PACKET_INIT_SET_INTERFACE(&request, iface->dev_info.iface_num, 0); + esp_err_t ret = uac_cs_request_set(iface->parent, (uac_cs_request_t *)&request); + if (ret != ESP_OK) { + ESP_LOGW(TAG, "Set Interface %d-%d Failed", iface->dev_info.iface_num, 0); + } else { + ESP_LOGI(TAG, "Set Interface %d-%d", iface->dev_info.iface_num, 0); + } + + uint8_t ep_addr = iface->iface_alt[iface->cur_alt].ep_addr; + UAC_RETURN_ON_ERROR(usb_host_endpoint_halt(iface->parent->dev_hdl, ep_addr), "Unable to HALT EP"); + UAC_RETURN_ON_ERROR(usb_host_endpoint_flush(iface->parent->dev_hdl, ep_addr), "Unable to FLUSH EP"); + usb_host_endpoint_clear(iface->parent->dev_hdl, ep_addr); + _ring_buffer_flush(iface->ringbuf); + + // add all the transfer to free list + UAC_ENTER_CRITICAL(); + for (int i = 0; i < iface->xfer_num; i++) { + if (iface->xfer_list[i]) { + iface->free_xfer_list[i] = iface->xfer_list[i]; + iface->xfer_list[i] = NULL; + } + } + UAC_EXIT_CRITICAL(); + // Change state + iface->state = UAC_INTERFACE_STATE_READY; + + return ESP_OK; +} + +/** + * @brief Resume suspended interface, the interface will be in ACTIVE state + * + * @param[in] iface Pointer to Interface structure + * @return esp_err_t + */ +static esp_err_t uac_host_interface_resume(uac_iface_t *iface) +{ + UAC_RETURN_ON_INVALID_ARG(iface); + UAC_RETURN_ON_INVALID_ARG(iface->parent); + UAC_RETURN_ON_INVALID_ARG(iface->free_xfer_list); + UAC_RETURN_ON_FALSE(is_interface_in_list(iface), ESP_ERR_NOT_FOUND, "Interface handle not found"); + UAC_RETURN_ON_FALSE((UAC_INTERFACE_STATE_READY == iface->state), ESP_ERR_INVALID_STATE, "Interface wrong state"); + + // Set Interface alternate setting + usb_setup_packet_t request; + USB_SETUP_PACKET_INIT_SET_INTERFACE(&request, iface->dev_info.iface_num, iface->cur_alt + 1); + UAC_RETURN_ON_ERROR(uac_cs_request_set(iface->parent, (uac_cs_request_t *)&request), "Unable to set Interface alternate"); + ESP_LOGI(TAG, "Set Interface %d-%d", iface->dev_info.iface_num, iface->cur_alt + 1); + // Set endpoint frequency control + if (iface->iface_alt[iface->cur_alt].freq_ctrl_supported) { + ESP_LOGI(TAG, "Set EP %02X frequency %"PRIu32, iface->iface_alt[iface->cur_alt].ep_addr, iface->iface_alt[iface->cur_alt].cur_sampling_freq); + UAC_RETURN_ON_ERROR(uac_cs_request_set_ep_frequency(iface, iface->iface_alt[iface->cur_alt].ep_addr, + iface->iface_alt[iface->cur_alt].cur_sampling_freq), "Unable to set endpoint frequency"); + } + // for RX, we just submit all the transfers + if (iface->dev_info.type == UAC_STREAM_RX) { + assert(iface->iface_alt[iface->cur_alt].ep_addr & 0x80); + for (int i = 0; i < iface->xfer_num; i++) { + assert(iface->free_xfer_list[i]); + iface->free_xfer_list[i]->device_handle = iface->parent->dev_hdl; + iface->free_xfer_list[i]->callback = stream_rx_xfer_done; + iface->free_xfer_list[i]->context = iface; + iface->free_xfer_list[i]->timeout_ms = DEFAULT_ISOC_XFER_TIMEOUT_MS; + iface->free_xfer_list[i]->bEndpointAddress = iface->iface_alt[iface->cur_alt].ep_addr; + // we request the size same as the MPS of the endpoint, but the actual size should be checked in the callback + iface->free_xfer_list[i]->num_bytes = iface->iface_alt[iface->cur_alt].ep_mps * iface->packet_num; + // set request nub_bytes of each packet + for (int j = 0; j < iface->packet_num; j++) { + iface->free_xfer_list[i]->isoc_packet_desc[j].num_bytes = iface->iface_alt[iface->cur_alt].ep_mps; + } + iface->xfer_list[i] = iface->free_xfer_list[i]; + iface->free_xfer_list[i] = NULL; + UAC_RETURN_ON_ERROR(usb_host_transfer_submit(iface->xfer_list[i]), "Unable to submit RX transfer"); + } + } else if (iface->dev_info.type == UAC_STREAM_TX) { + assert(!(iface->iface_alt[iface->cur_alt].ep_addr & 0x80)); + // for TX, we submit the first transfer with data 0 to make the speaker quiet + for (int i = 0; i < iface->xfer_num; i++) { + assert(iface->free_xfer_list[i]); + iface->free_xfer_list[i]->device_handle = iface->parent->dev_hdl; + iface->free_xfer_list[i]->callback = stream_tx_xfer_done; + iface->free_xfer_list[i]->context = iface; + iface->free_xfer_list[i]->timeout_ms = DEFAULT_ISOC_XFER_TIMEOUT_MS; + iface->free_xfer_list[i]->bEndpointAddress = iface->iface_alt[iface->cur_alt].ep_addr; + // set the data buffer to 0 + memset(iface->free_xfer_list[i]->data_buffer, 0, iface->free_xfer_list[i]->data_buffer_size); + // for synchronous transfer type, the packet size depends on the actual sample rate, channels and bit resolution. + for (int j = 0; j < iface->packet_num; j++) { + iface->free_xfer_list[i]->isoc_packet_desc[j].num_bytes = iface->packet_size; + } + iface->free_xfer_list[i]->num_bytes = iface->packet_num * iface->packet_size; + } + } + + // for TX, we check if data is available in the ringbuffer, if yes, we submit the transfer + iface->state = UAC_INTERFACE_STATE_ACTIVE; + + return ESP_OK; +} + +/** + * @brief Add UAC physical device to the list + * @param[in] addr USB device address + * @param[in] dev_hdl USB device handle + * @param[in] config_desc Pointer to Configuration Descriptor + * @param[out] uac_device_handle Pointer to UAC device handle + * @return esp_err_t + */ +static esp_err_t _uac_host_device_add(uint8_t addr, usb_device_handle_t dev_hdl, const usb_config_desc_t *config_desc, uac_device_t **uac_device_handle) +{ + assert(config_desc); + esp_err_t ret; + uac_device_t *uac_device; + UAC_GOTO_ON_FALSE(uac_device = calloc(1, sizeof(uac_device_t)), ESP_ERR_NO_MEM, "Unable to allocate memory for UAC Device"); + + uac_device->addr = addr; + uac_device->dev_hdl = dev_hdl; + + // Parse the configuration descriptor to find the UAC control interface + const size_t total_length = config_desc->wTotalLength; + const usb_intf_desc_t *iface_desc = NULL; + const uac_desc_header_t *uac_cs_desc = NULL; + int iface_offset = 0; + int uac_desc_offset = 0; + // Get first Interface descriptor + iface_desc = GET_NEXT_INTERFACE_DESC(config_desc, total_length, iface_offset); + while (iface_desc != NULL) { + uac_desc_offset = iface_offset; + // 1. Parse the configuration descriptor to find only the first the UAC control interface + // 2. Parse each class specific audio control interface + // 2.1. for header descriptor, check if it is supported uac version + // 2.2. find RX, TX corresponding input/output terminal id, input channel config bitmap + // 2.3. find RX, TX corresponding feature unit, volume and mute control ability + if (iface_desc->bInterfaceClass == USB_CLASS_AUDIO && iface_desc->bInterfaceSubClass == UAC_SUBCLASS_AUDIOCONTROL) { + ESP_LOGD(TAG, "Found UAC Control, bInterfaceNumber=%d", iface_desc->bInterfaceNumber); + uac_cs_desc = GET_NEXT_UAC_CS_DESC(iface_desc, total_length, uac_desc_offset); + uac_device->ctrl_iface_num = iface_desc->bInterfaceNumber; + // break if all UAC control class specific descriptors are parsed + while (uac_cs_desc != NULL) { + switch (uac_cs_desc->bDescriptorSubtype) { + case UAC_AC_HEADER: { + const uac_ac_header_desc_t *header_desc = (const uac_ac_header_desc_t *)uac_cs_desc; + if (header_desc->bcdADC != 0x0100) { + ESP_LOGW(TAG, "UAC version %04X not supported", header_desc->bcdADC); + free(uac_device); + return ESP_ERR_NOT_SUPPORTED; + } + ESP_LOGD(TAG, "UAC version %04X", header_desc->bcdADC); + break; + } + case UAC_AC_INPUT_TERMINAL: { + const uac_ac_input_terminal_desc_t *input_terminal_desc = (const uac_ac_input_terminal_desc_t *)uac_cs_desc; + if (input_terminal_desc->wTerminalType == UAC_USB_TERMINAL_TYPE_USB_STREAMING) { + uac_device->input_terminal[UAC_STREAM_TX] = input_terminal_desc->bTerminalID; + uac_device->input_channel[UAC_STREAM_TX] = input_terminal_desc->bNrChannels; + ESP_LOGD(TAG, "TX: UAC Input Terminal ID %d, Channel %d", input_terminal_desc->bTerminalID, + input_terminal_desc->bNrChannels); + } else { + // We don't care the terminal type + uac_device->input_terminal[UAC_STREAM_RX] = input_terminal_desc->bTerminalID; + uac_device->input_channel[UAC_STREAM_RX] = input_terminal_desc->bNrChannels; + ESP_LOGD(TAG, "RX: UAC Input Terminal ID %d, Channel %d", input_terminal_desc->bTerminalID, + input_terminal_desc->bNrChannels); + } + break; + } + case UAC_AC_FEATURE_UNIT: { + const uac_ac_feature_unit_desc_t *feature_unit_desc = (const uac_ac_feature_unit_desc_t *)uac_cs_desc; + // check the feature unit ID corresponding to the input terminal + if (feature_unit_desc->bSourceID == uac_device->input_terminal[UAC_STREAM_RX]) { + uac_device->feature_unit[UAC_STREAM_RX] = feature_unit_desc->bUnitID; + uint8_t ch_num = 0; + for (size_t i = 0; i < (feature_unit_desc->bLength - 7) / feature_unit_desc->bControlSize; i += feature_unit_desc->bControlSize) { + if (feature_unit_desc->bmaControls[i] & UAC_FU_CONTROL_POS_VOLUME) { + uac_device->vol_ch_map[UAC_STREAM_RX] |= (1 << ch_num); + } + if (feature_unit_desc->bmaControls[i] & UAC_FU_CONTROL_POS_MUTE) { + uac_device->mute_ch_map[UAC_STREAM_RX] |= (1 << ch_num); + } + ch_num++; + } + ESP_LOGD(TAG, "RX: UAC Feature Unit ID %d, Volume Ch Map %02X, Mute Ch Map %02X", feature_unit_desc->bUnitID, + uac_device->vol_ch_map[UAC_STREAM_RX], uac_device->mute_ch_map[UAC_STREAM_RX]); + } else if (feature_unit_desc->bSourceID == uac_device->input_terminal[UAC_STREAM_TX]) { + uac_device->feature_unit[UAC_STREAM_TX] = feature_unit_desc->bUnitID; + uint8_t ch_num = 0; + for (size_t i = 0; i < (feature_unit_desc->bLength - 7) / feature_unit_desc->bControlSize; i++) { + if (feature_unit_desc->bmaControls[i * feature_unit_desc->bControlSize] & UAC_FU_CONTROL_POS_VOLUME) { + uac_device->vol_ch_map[UAC_STREAM_TX] |= (1 << ch_num); + } + if (feature_unit_desc->bmaControls[i * feature_unit_desc->bControlSize] & UAC_FU_CONTROL_POS_MUTE) { + uac_device->mute_ch_map[UAC_STREAM_TX] |= (1 << ch_num); + } + ch_num++; + } + ESP_LOGD(TAG, "TX: UAC Feature Unit ID %d, Volume Ch Map %02X, Mute Ch Map %02X", feature_unit_desc->bUnitID, + uac_device->vol_ch_map[UAC_STREAM_TX], uac_device->mute_ch_map[UAC_STREAM_TX]); + } else { + ESP_LOGW(TAG, "Feature Unit ID %d not corresponding to the input terminal", feature_unit_desc->bUnitID); + } + break; + } + case UAC_AC_OUTPUT_TERMINAL: { + const uac_ac_output_terminal_desc_t *output_terminal_desc = (const uac_ac_output_terminal_desc_t *)uac_cs_desc; + if (output_terminal_desc->wTerminalType == UAC_USB_TERMINAL_TYPE_USB_STREAMING) { + uac_device->output_terminal[UAC_STREAM_RX] = output_terminal_desc->bTerminalID; + ESP_LOGD(TAG, "RX: UAC Output Terminal ID %d", output_terminal_desc->bTerminalID); + } else { + // We don't care the terminal type + uac_device->output_terminal[UAC_STREAM_TX] = output_terminal_desc->bTerminalID; + ESP_LOGD(TAG, "TX: UAC Output Terminal ID %d", output_terminal_desc->bTerminalID); + } + break; + } + default: + ESP_LOGD(TAG, "Skip UAC CS bDescriptorSubtype=%d", uac_cs_desc->bDescriptorSubtype); + break; + } + uac_cs_desc = (uac_desc_header_t *)GET_NEXT_DESC(uac_cs_desc, total_length, uac_desc_offset); + if (uac_cs_desc->bDescriptorType != UAC_CS_INTERFACE) { + // parse stop if the next descriptor is not UAC class specific interface descriptor + break; + } + } + // all parse stop, only parse the first UAC control interface + break; + } + iface_desc = GET_NEXT_INTERFACE_DESC(iface_desc, total_length, iface_offset); + } + + // Create Semaphore for control transfer + UAC_GOTO_ON_FALSE(uac_device->ctrl_xfer_done = xSemaphoreCreateBinary(), ESP_ERR_NO_MEM, "Unable to create semaphore"); + UAC_GOTO_ON_FALSE(uac_device->device_busy = xSemaphoreCreateMutex(), ESP_ERR_NO_MEM, "Unable to create mutex"); + + // Allocate control transfer buffer + UAC_GOTO_ON_ERROR(usb_host_transfer_alloc(64, 0, &uac_device->ctrl_xfer), "Unable to allocate transfer buffer"); + + UAC_GOTO_ON_FALSE_CRITICAL(s_uac_driver, ESP_ERR_INVALID_STATE); + UAC_GOTO_ON_FALSE_CRITICAL(s_uac_driver->client_handle, ESP_ERR_INVALID_STATE); + UAC_ENTER_CRITICAL(); + STAILQ_INSERT_TAIL(&s_uac_driver->uac_devices_tailq, uac_device, tailq_entry); + UAC_EXIT_CRITICAL(); + + if (uac_device_handle) { + *uac_device_handle = uac_device; + } + + return ESP_OK; + +fail: + _uac_host_device_delete(uac_device); + return ret; +} + +/** + * @brief Remove UAC physical device from the list + * @param[in] uac_device Pointer to UAC device structure + * @return esp_err_t + */ +static esp_err_t _uac_host_device_delete(uac_device_t *uac_device) +{ + UAC_RETURN_ON_INVALID_ARG(uac_device); + + if (uac_device->ctrl_xfer) { + UAC_RETURN_ON_ERROR(usb_host_transfer_free(uac_device->ctrl_xfer), "Unable to free transfer buffer for EP0"); + } + + if (uac_device->ctrl_xfer_done) { + vSemaphoreDelete(uac_device->ctrl_xfer_done); + } + + if (uac_device->device_busy) { + vSemaphoreDelete(uac_device->device_busy); + } + + ESP_LOGD(TAG, "Remove addr %d device from list", uac_device->addr); + + UAC_ENTER_CRITICAL(); + STAILQ_REMOVE(&s_uac_driver->uac_devices_tailq, uac_device, uac_host_device, tailq_entry); + UAC_EXIT_CRITICAL(); + + free(uac_device); + return ESP_OK; +} + +/** Lock UAC device from other task + * + * @param[in] uac_device Pointer to UAC device structure + * @param[in] timeout_ms Timeout of trying to take the mutex + * @return esp_err_t + */ +static inline esp_err_t _uac_host_device_try_lock(uac_device_t *uac_device, uint32_t timeout_ms) +{ + return (xSemaphoreTake(uac_device->device_busy, pdMS_TO_TICKS(timeout_ms)) ? ESP_OK : ESP_ERR_TIMEOUT); +} + +/** Unlock UAC device from other task + * + * @param[in] uac_device Pointer to UAC device structure + * @param[in] timeout_ms Timeout of trying to take the mutex + * @return esp_err_t + */ +static inline void _uac_host_device_unlock(uac_device_t *uac_device) +{ + xSemaphoreGive(uac_device->device_busy); +} + +/** + * @brief UAC Control transfer complete callback + * + * @param[in] ctrl_xfer Pointer to transfer data structure + */ +static void ctrl_xfer_done(usb_transfer_t *ctrl_xfer) +{ + assert(ctrl_xfer); + uac_device_t *uac_device = (uac_device_t *)ctrl_xfer->context; + xSemaphoreGive(uac_device->ctrl_xfer_done); +} + +/** + * @brief UAC control transfer synchronous. + * + * @param[in] uac_device Pointer to UAC device structure + * @param[in] len Number of bytes to transfer + * @param[in] timeout_ms Timeout in ms + * @return esp_err_t + */ +static esp_err_t uac_control_transfer(uac_device_t *uac_device, int len, uint32_t timeout_ms) +{ + + usb_transfer_t *ctrl_xfer = uac_device->ctrl_xfer; + + ctrl_xfer->device_handle = uac_device->dev_hdl; + ctrl_xfer->callback = ctrl_xfer_done; + ctrl_xfer->context = uac_device; + ctrl_xfer->bEndpointAddress = 0; + ctrl_xfer->timeout_ms = timeout_ms; + ctrl_xfer->num_bytes = len; + + UAC_RETURN_ON_ERROR(usb_host_transfer_submit_control(s_uac_driver->client_handle, ctrl_xfer), "Unable to submit control transfer"); + + BaseType_t received = xSemaphoreTake(uac_device->ctrl_xfer_done, pdMS_TO_TICKS(ctrl_xfer->timeout_ms)); + + if (received != pdTRUE) { + // Transfer was not finished, error in USB LIB. Reset the endpoint + ESP_LOGE(TAG, "Control Transfer Timeout"); + UAC_RETURN_ON_ERROR(usb_host_endpoint_halt(uac_device->dev_hdl, ctrl_xfer->bEndpointAddress), "Unable to HALT EP"); + UAC_RETURN_ON_ERROR(usb_host_endpoint_flush(uac_device->dev_hdl, ctrl_xfer->bEndpointAddress), "Unable to FLUSH EP"); + usb_host_endpoint_clear(uac_device->dev_hdl, ctrl_xfer->bEndpointAddress); + return ESP_ERR_TIMEOUT; + } + + UAC_RETURN_ON_FALSE(ctrl_xfer->status == USB_TRANSFER_STATUS_COMPLETED, ESP_ERR_INVALID_RESPONSE, "Control transfer error"); + UAC_RETURN_ON_FALSE(ctrl_xfer->actual_num_bytes <= ctrl_xfer->num_bytes, ESP_ERR_INVALID_RESPONSE, "Incorrect number of bytes transferred"); + ESP_LOG_BUFFER_HEXDUMP(TAG, ctrl_xfer->data_buffer, ctrl_xfer->actual_num_bytes, ESP_LOG_DEBUG); + + return ESP_OK; +} + +/** + * @brief UAC class specific request Set + * + * @param[in] uac_device Pointer to UAC device structure + * @param[in] req Pointer to a class specific request structure + * @return esp_err_t + */ +static esp_err_t uac_cs_request_set(uac_device_t *uac_device, const uac_cs_request_t *req) +{ + esp_err_t ret; + usb_transfer_t *ctrl_xfer = uac_device->ctrl_xfer; + UAC_RETURN_ON_INVALID_ARG(uac_device); + UAC_RETURN_ON_INVALID_ARG(uac_device->ctrl_xfer); + + UAC_RETURN_ON_ERROR(_uac_host_device_try_lock(uac_device, DEFAULT_CTRL_XFER_TIMEOUT_MS), "UAC Device is busy by other task"); + + usb_setup_packet_t *setup = (usb_setup_packet_t *)ctrl_xfer->data_buffer; + + setup->bmRequestType = req->bmRequestType; + setup->bRequest = req->bRequest; + setup->wValue = req->wValue; + setup->wIndex = req->wIndex; + setup->wLength = req->wLength; + + if (setup->bmRequestType == 0) { + setup->bmRequestType = USB_BM_REQUEST_TYPE_DIR_OUT | USB_BM_REQUEST_TYPE_TYPE_CLASS + | USB_BM_REQUEST_TYPE_RECIP_INTERFACE; + } + + if (req->wLength && req->data) { + memcpy(ctrl_xfer->data_buffer + USB_SETUP_PACKET_SIZE, req->data, req->wLength); + } + + ret = uac_control_transfer(uac_device, USB_SETUP_PACKET_SIZE + setup->wLength, DEFAULT_CTRL_XFER_TIMEOUT_MS); + + _uac_host_device_unlock(uac_device); + + return ret; +} + +/** + * @brief UAC class specific request - Set Endpoint Frequency + * @param[in] iface Pointer to UAC interface structure + * @param[in] ep_addr Endpoint address + * @param[in] freq Frequency to set + * @return esp_err_t + */ +static esp_err_t uac_cs_request_set_ep_frequency(uac_iface_t *iface, uint8_t ep_addr, uint32_t freq) +{ + uint8_t tmp[3] = { 0, 0, 0 }; + + const uac_cs_request_t set_freq = { + .bmRequestType = USB_BM_REQUEST_TYPE_DIR_OUT | USB_BM_REQUEST_TYPE_TYPE_CLASS + | USB_BM_REQUEST_TYPE_RECIP_ENDPOINT, + .bRequest = UAC_SET_CUR, + .wValue = UAC_SAMPLING_FREQ_CONTROL << 8, + .wIndex = (0x00ff & ep_addr), + .wLength = 3, + .data = tmp + }; + + tmp[0] = freq & 0xff; + tmp[1] = (freq >> 8) & 0xff; + tmp[2] = (freq >> 16) & 0xff; + return uac_cs_request_set(iface->parent, &set_freq); +} + +/** + * @brief UAC class specific request - Set Volume + * @param[in] iface Pointer to UAC interface structure + * @param[in] volume Volume to set, db + * @return esp_err_t + */ +static esp_err_t uac_cs_request_set_volume(uac_iface_t *iface, uint32_t volume) +{ + uint8_t feature_unit = iface->parent->feature_unit[iface->dev_info.type]; + uint8_t vol_ch_map = iface->parent->vol_ch_map[iface->dev_info.type]; + UAC_RETURN_ON_FALSE(feature_unit && vol_ch_map, ESP_ERR_NOT_SUPPORTED, "volume control not supported"); + uint8_t ctrl_iface_num = iface->parent->ctrl_iface_num; + uint8_t tmp[2] = { 0, 0 }; + esp_err_t ret = ESP_OK; + + uac_cs_request_t set_volume = { + .bRequest = UAC_SET_CUR, + .wIndex = (feature_unit << 8) | (ctrl_iface_num & 0xff), + .wLength = 2, + .data = tmp + }; + + tmp[0] = volume & 0xff; + tmp[1] = (volume >> 8) & 0xff; + + // set volume for all logical channels + // we not support separate volume control for each channel + for (size_t i = 0; i < 8; i++) { + if (vol_ch_map & (1 << i)) { + set_volume.wValue = (UAC_VOLUME_CONTROL << 8) | i, + ret = uac_cs_request_set(iface->parent, &set_volume); + if (ret != ESP_OK) { + return ret; + } + } + } + ESP_LOGD(TAG, "Set volume 0x%04X db", (unsigned int)volume); + return ret; +} + +/** + * @brief UAC class specific request - Set Mute + * @param[in] iface Pointer to UAC interface structure + * @param[in] mute True to mute, false to unmute + * @return esp_err_t + */ +static esp_err_t uac_cs_request_set_mute(uac_iface_t *iface, bool mute) +{ + uint8_t feature_unit = iface->parent->feature_unit[iface->dev_info.type]; + uint8_t mute_ch_map = iface->parent->mute_ch_map[iface->dev_info.type]; + UAC_RETURN_ON_FALSE(feature_unit, ESP_ERR_NOT_SUPPORTED, "mute control not supported"); + uint8_t ctrl_iface_num = iface->parent->ctrl_iface_num; + uint8_t tmp[1] = { 0 }; + esp_err_t ret = ESP_OK; + + uac_cs_request_t set_mute = { + .bRequest = UAC_SET_CUR, + .wIndex = (feature_unit << 8) | (ctrl_iface_num & 0xff), + .wLength = 1, + .data = tmp + }; + + tmp[0] = mute; + + // set mute for all logical channels + // we not support separate mute control for each channel + for (size_t i = 0; i < 8; i++) { + if (mute_ch_map & (1 << i)) { + set_mute.wValue = (UAC_MUTE_CONTROL << 8) | i, + ret = uac_cs_request_set(iface->parent, &set_mute); + if (ret != ESP_OK) { + return ret; + } + } + } + ESP_LOGD(TAG, "Set mute %d", mute); + return ret; +} + +esp_err_t uac_host_install(const uac_host_driver_config_t *config) +{ + esp_err_t ret; + // Make sure uac driver is not installed + UAC_RETURN_ON_FALSE(!s_uac_driver, ESP_ERR_INVALID_STATE, "UAC Host driver is already installed"); + UAC_RETURN_ON_INVALID_ARG(config); + UAC_RETURN_ON_INVALID_ARG(config->callback); + + if (config->create_background_task) { + UAC_RETURN_ON_FALSE(config->stack_size != 0, ESP_ERR_INVALID_ARG, "Wrong stack size value"); + UAC_RETURN_ON_FALSE(config->task_priority != 0, ESP_ERR_INVALID_ARG, "Wrong task priority value"); + UAC_RETURN_ON_FALSE(config->core_id < 2, ESP_ERR_INVALID_ARG, "Wrong core id value"); + } + + uac_driver_t *driver = heap_caps_calloc(1, sizeof(uac_driver_t), MALLOC_CAP_DEFAULT); + UAC_RETURN_ON_FALSE(driver, ESP_ERR_NO_MEM, "Unable to allocate memory"); + + driver->user_cb = config->callback; + driver->user_arg = config->callback_arg; + driver->end_client_event_handling = false; + driver->all_events_handled = xSemaphoreCreateBinary(); + UAC_GOTO_ON_FALSE(driver->all_events_handled, ESP_ERR_NO_MEM, "Unable to create semaphore"); + + usb_host_client_config_t client_config = { + .is_synchronous = false, + .async.client_event_callback = client_event_cb, + .async.callback_arg = NULL, + .max_num_event_msg = 16, + }; + UAC_GOTO_ON_ERROR(usb_host_client_register(&client_config, &driver->client_handle), "Unable to register USB Host client"); + + UAC_ENTER_CRITICAL(); + s_uac_driver = driver; + STAILQ_INIT(&s_uac_driver->uac_devices_tailq); + STAILQ_INIT(&s_uac_driver->uac_ifaces_tailq); + UAC_EXIT_CRITICAL(); + + if (config->create_background_task) { + BaseType_t task_created = xTaskCreatePinnedToCore(event_handler_task, "USB UAC Host", config->stack_size, + NULL, config->task_priority, NULL, config->core_id); + UAC_GOTO_ON_FALSE(task_created, ESP_ERR_NO_MEM, "Unable to create USB UAC Host task"); + } + + return ESP_OK; + +fail: + s_uac_driver = NULL; + if (driver->client_handle) { + usb_host_client_deregister(driver->client_handle); + } + if (driver->all_events_handled) { + vSemaphoreDelete(driver->all_events_handled); + } + free(driver); + return ret; +} + +esp_err_t uac_host_uninstall(void) +{ + // Make sure uac driver is installed, + UAC_RETURN_ON_FALSE(s_uac_driver, ESP_OK, "UAC Host driver was not installed"); + + // Make sure that no uac device is registered + UAC_ENTER_CRITICAL(); + UAC_RETURN_ON_FALSE_CRITICAL(!s_uac_driver->end_client_event_handling, ESP_ERR_INVALID_STATE); + // assert that not all devices and interfaces are closed before uninstalling + UAC_RETURN_ON_FALSE_CRITICAL(STAILQ_EMPTY(&s_uac_driver->uac_devices_tailq), ESP_ERR_INVALID_STATE); + UAC_RETURN_ON_FALSE_CRITICAL(STAILQ_EMPTY(&s_uac_driver->uac_ifaces_tailq), ESP_ERR_INVALID_STATE); + s_uac_driver->end_client_event_handling = true; + UAC_EXIT_CRITICAL(); + + if (s_uac_driver->event_handling_started) { + ESP_ERROR_CHECK(usb_host_client_unblock(s_uac_driver->client_handle)); + // In case the event handling started, we must wait until it finishes + xSemaphoreTake(s_uac_driver->all_events_handled, portMAX_DELAY); + } + vSemaphoreDelete(s_uac_driver->all_events_handled); + ESP_ERROR_CHECK(usb_host_client_deregister(s_uac_driver->client_handle)); + free(s_uac_driver); + s_uac_driver = NULL; + return ESP_OK; +} + +esp_err_t uac_host_device_open(const uac_host_device_config_t *config, uac_host_device_handle_t *uac_dev_handle) +{ + UAC_RETURN_ON_INVALID_ARG(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(config); + *uac_dev_handle = NULL; + + UAC_RETURN_ON_FALSE(s_uac_driver, ESP_ERR_INVALID_STATE, "UAC Driver is not installed"); + UAC_RETURN_ON_FALSE(config->addr, ESP_ERR_INVALID_ARG, "Invalid device address"); + UAC_RETURN_ON_FALSE(config->iface_num, ESP_ERR_INVALID_ARG, "Invalid interface number"); + UAC_RETURN_ON_FALSE(config->buffer_size, ESP_ERR_INVALID_ARG, "Invalid buffer size"); + UAC_RETURN_ON_FALSE(config->buffer_size > config->buffer_threshold, ESP_ERR_INVALID_ARG, "Invalid buffer threshold"); + + ESP_LOGD(TAG, "Open Device addr %d, iface %d", config->addr, config->iface_num); + // Check if the logic device/interface is already added + uac_iface_t *uac_iface = get_interface_by_addr(config->addr, config->iface_num); + if (uac_iface) { + *uac_dev_handle = (uac_host_device_handle_t)uac_iface; + ESP_LOGD(TAG, "Device addr %d, iface %d already opened", config->addr, config->iface_num); + return ESP_OK; + } + + // Check if the physical device is already added + esp_err_t ret; + uac_device_t *uac_device = get_uac_device_by_addr(config->addr); + bool new_device = false; + usb_device_handle_t dev_hdl = NULL; + if (!uac_device) { + UAC_GOTO_ON_ERROR(usb_host_device_open(s_uac_driver->client_handle, config->addr, &dev_hdl), "Unable to open USB device"); + ESP_LOGD(TAG, "line %d, Open Device addr %d", __LINE__, config->addr); + const usb_config_desc_t *config_desc; + UAC_GOTO_ON_ERROR(usb_host_get_active_config_descriptor(dev_hdl, &config_desc), "Unable to get active config descriptor"); + // Proceed, add UAC device to the list, parse device params from descriptors + UAC_GOTO_ON_ERROR(_uac_host_device_add(config->addr, dev_hdl, config_desc, &uac_device), "Unable to add UAC device"); + new_device = true; + uac_device->opened_cnt = 0; + } + + UAC_GOTO_ON_ERROR(uac_host_interface_add(uac_device, config->iface_num, &uac_iface), "Unable to add interface"); + + // Save UAC Interface callback + uac_iface->user_cb = config->callback; + uac_iface->user_cb_arg = config->callback_arg; + // create a ringbuffer for the incoming/outgoing data + uac_iface->ringbuf = xRingbufferCreate(config->buffer_size, RINGBUF_TYPE_BYTEBUF); + UAC_GOTO_ON_FALSE(uac_iface->ringbuf, ESP_ERR_NO_MEM, "Unable to create ringbuffer"); + uac_iface->ringbuf_size = config->buffer_size; + // if the threshold is not set, set it to 25% of the buffer size + uac_iface->ringbuf_threshold = config->buffer_threshold ? config->buffer_threshold : config->buffer_size / 4; + uac_iface->state = UAC_INTERFACE_STATE_IDLE; + *uac_dev_handle = (uac_host_device_handle_t)uac_iface; + UAC_ENTER_CRITICAL(); + uac_device->opened_cnt++; + UAC_EXIT_CRITICAL(); + return ESP_OK; + +fail: + if (uac_iface) { + uac_host_interface_delete(uac_iface); + } + if (new_device) { + _uac_host_device_delete(uac_device); + } + if (dev_hdl) { + usb_host_device_close(s_uac_driver->client_handle, dev_hdl); + } + if (uac_iface->ringbuf) { + vRingbufferDelete(uac_iface->ringbuf); + } + return ret; +} + +esp_err_t uac_host_device_close(uac_host_device_handle_t uac_dev_handle) +{ + uac_iface_t *uac_iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(uac_iface); + + esp_err_t ret = ESP_OK; + ESP_LOGD(TAG, "Close addr %d, iface %d, state %d", uac_iface->dev_info.addr, uac_iface->dev_info.iface_num, uac_iface->state); + + UAC_RETURN_ON_ERROR(uac_host_interface_try_lock(uac_iface, DEFAULT_CTRL_XFER_TIMEOUT_MS), "UAC Interface is busy by other task"); + if (UAC_INTERFACE_STATE_ACTIVE == uac_iface->state) { + UAC_GOTO_ON_ERROR(uac_host_interface_suspend(uac_iface), "Unable to disable UAC Interface"); + } + + if (UAC_INTERFACE_STATE_READY == uac_iface->state) { + UAC_GOTO_ON_ERROR(uac_host_interface_release_and_free_transfer(uac_iface), "Unable to release UAC Interface"); + } + + // Wait for user delete + if (FLAG_INTERFACE_WAIT_USER_DELETE & uac_iface->flags) { + uac_host_interface_unlock(uac_iface); + return ESP_OK; + } + + UAC_ENTER_CRITICAL(); + if (--uac_iface->parent->opened_cnt == 0) { + UAC_EXIT_CRITICAL(); + UAC_GOTO_ON_ERROR(usb_host_device_close(s_uac_driver->client_handle, uac_iface->parent->dev_hdl), "Unable to close USB device"); + ESP_LOGD(TAG, "line %d, Close Device addr %d", __LINE__, uac_iface->parent->addr); + UAC_GOTO_ON_ERROR(_uac_host_device_delete(uac_iface->parent), "Unable to delete UAC device"); + uac_iface->parent = NULL; + UAC_ENTER_CRITICAL(); + } + UAC_EXIT_CRITICAL(); + + // To delete the ringbuffer safely + // We should unblock the task that is waiting for the ringbuffer + if (uac_iface->ringbuf) { + if (uac_iface->dev_info.type == UAC_STREAM_RX) { + // Unblock the task that is waiting for read from the ringbuffer + uint8_t dummy = 0; + xRingbufferSend(uac_iface->ringbuf, &dummy, sizeof(dummy), 0); + } else { + // Unblock the task that is waiting for the ringbuffer + _ring_buffer_flush(uac_iface->ringbuf); + } + // Wait 10 ms for low priority task to unblock + vTaskDelay(pdMS_TO_TICKS(10)); + vRingbufferDelete(uac_iface->ringbuf); + uac_iface->ringbuf = NULL; + } + + uac_iface->user_cb = NULL; + uac_iface->user_cb_arg = NULL; + ESP_LOGD(TAG, "User Remove addr %d, iface %d from list", uac_iface->dev_info.addr, uac_iface->dev_info.iface_num); + uac_host_interface_delete(uac_iface); + + return ESP_OK; + +fail: + uac_host_interface_unlock(uac_iface); + return ret; +} + +esp_err_t uac_host_handle_events(uint32_t timeout) +{ + UAC_RETURN_ON_FALSE(s_uac_driver != NULL, ESP_ERR_INVALID_STATE, "UAC Driver is not installed"); + s_uac_driver->event_handling_started = true; + esp_err_t ret = usb_host_client_handle_events(s_uac_driver->client_handle, timeout); + UAC_ENTER_CRITICAL(); + if (s_uac_driver->end_client_event_handling) { + UAC_EXIT_CRITICAL(); + xSemaphoreGive(s_uac_driver->all_events_handled); + return ESP_FAIL; + } + UAC_EXIT_CRITICAL(); + return ret; +} + +esp_err_t uac_host_get_device_alt_param(uac_host_device_handle_t uac_dev_handle, uint8_t iface_alt, uac_host_dev_alt_param_t *uac_alt_param) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_FALSE(iface, ESP_ERR_INVALID_STATE, "UAC Interface not found"); + UAC_RETURN_ON_FALSE(uac_alt_param, ESP_ERR_INVALID_ARG, "Wrong argument"); + UAC_RETURN_ON_FALSE(iface_alt > 0, ESP_ERR_INVALID_ARG, "Invalid alt setting"); + UAC_RETURN_ON_FALSE(iface_alt <= iface->dev_info.iface_alt_num, ESP_ERR_INVALID_ARG, "Invalid alt setting"); + memcpy(uac_alt_param, &iface->iface_alt[iface_alt - 1].dev_alt_param, sizeof(uac_host_dev_alt_param_t)); + return ESP_OK; +} + +esp_err_t uac_host_printf_device_param(uac_host_device_handle_t uac_dev_handle) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_FALSE(iface, ESP_ERR_INVALID_STATE, "UAC Interface not found"); + uac_host_dev_info_t dev_info; + UAC_RETURN_ON_ERROR(uac_host_get_device_info(uac_dev_handle, &dev_info), "Unable to get UAC device params"); + printf("find UAC 1.0 %s device\n", dev_info.type == UAC_STREAM_TX ? "Speaker" : "Microphone"); + printf("interface number: %d\n", dev_info.iface_num); + printf("total alt interfaces number: %d\n", dev_info.iface_alt_num); + + for (int i = 1; i <= dev_info.iface_alt_num; i++) { + uac_host_dev_alt_param_t iface_alt_params; + ESP_ERROR_CHECK(uac_host_get_device_alt_param(uac_dev_handle, i, &iface_alt_params)); + printf("--------alt interface[%d]--------- \nchannels = %d \nbit_resolution = %d \nsample_freq: \n", + i, iface_alt_params.channels, iface_alt_params.bit_resolution); + if (iface_alt_params.sample_freq_type) { + for (int j = 0; j < iface_alt_params.sample_freq_type; j++) { + printf("\t%" PRIu32 "\n", iface_alt_params.sample_freq[j]); + } + } else { + printf(">= \t%" PRIu32 "\n", iface_alt_params.sample_freq_lower); + printf("<= \t%" PRIu32 "\n", iface_alt_params.sample_freq_upper); + } + } + return ESP_OK; +} + +// ------------------------ USB UAC Host driver API ---------------------------- + +esp_err_t uac_host_device_start(uac_host_device_handle_t uac_dev_handle, const uac_host_stream_config_t *stream_config) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + + UAC_RETURN_ON_INVALID_ARG(iface); + UAC_RETURN_ON_INVALID_ARG(iface->parent); + UAC_RETURN_ON_FALSE(stream_config->bit_resolution, ESP_ERR_INVALID_ARG, "Invalid bit resolution"); + UAC_RETURN_ON_FALSE(stream_config->channels, ESP_ERR_INVALID_ARG, "Invalid number of channels"); + UAC_RETURN_ON_FALSE(stream_config->sample_freq, ESP_ERR_INVALID_ARG, "Invalid sample frequency"); + + // get the mutex first to change the device/interface state + UAC_RETURN_ON_ERROR(uac_host_interface_try_lock(iface, DEFAULT_CTRL_XFER_TIMEOUT_MS), "Unable to lock UAC Interface"); + if (UAC_INTERFACE_STATE_ACTIVE == iface->state || UAC_INTERFACE_STATE_READY == iface->state) { + uac_host_interface_unlock(iface); + return ESP_OK; + } + + esp_err_t ret = ESP_OK; + bool iface_claimed = false; + UAC_GOTO_ON_FALSE((UAC_INTERFACE_STATE_IDLE == iface->state), ESP_ERR_INVALID_STATE, "Interface wrong state"); + + // check if any alt setting meets the channels, sample frequency and bit resolution requirements + // if not exist, return error. If exist, claim the interface and prepare transfer + iface->cur_alt = UINT8_MAX; + for (int i = 0; i < iface->dev_info.iface_alt_num; i++) { + if (iface->iface_alt[i].dev_alt_param.channels == stream_config->channels && + iface->iface_alt[i].dev_alt_param.bit_resolution == stream_config->bit_resolution) { + // check if the sample frequency is in the list or in the range + if (iface->iface_alt[i].dev_alt_param.sample_freq_type > 0) { + for (int j = 0; j < iface->iface_alt[i].dev_alt_param.sample_freq_type; j++) { + if (iface->iface_alt[i].dev_alt_param.sample_freq[j] == stream_config->sample_freq) { + iface->cur_alt = i; + iface->iface_alt[i].cur_sampling_freq = stream_config->sample_freq; + break; + } + } + } else if (iface->iface_alt[i].dev_alt_param.sample_freq_lower <= stream_config->sample_freq && + iface->iface_alt[i].dev_alt_param.sample_freq_upper >= stream_config->sample_freq) { + iface->cur_alt = i; + iface->iface_alt[i].cur_sampling_freq = stream_config->sample_freq; + break; + } + } + } + + UAC_GOTO_ON_FALSE(iface->cur_alt != UINT8_MAX, ESP_ERR_NOT_FOUND, "No suitable alt setting found"); + + // enqueue multiple transfers to make sure the data is not lost + iface->xfer_num = CONFIG_UAC_NUM_ISOC_URBS; + iface->packet_num = CONFIG_UAC_NUM_PACKETS_PER_URB; + iface->packet_size = iface->iface_alt[iface->cur_alt].cur_sampling_freq * stream_config->channels * stream_config->bit_resolution / 8 / 1000; + iface->flags |= stream_config->flags; + // if the packet size is not an integer, we need to add one more byte + if (iface->iface_alt[iface->cur_alt].cur_sampling_freq * stream_config->channels * stream_config->bit_resolution / 8 % 1000) { + ESP_LOGD(TAG, "packet_size %" PRIu32 " is not an integer, add one more byte", iface->packet_size); + iface->packet_size++; + } + assert(iface->packet_size <= iface->iface_alt[iface->cur_alt].ep_mps); + + // Claim Interface and prepare transfer + UAC_GOTO_ON_ERROR(uac_host_interface_claim_and_prepare_transfer(iface), "Unable to claim Interface"); + iface_claimed = true; + + if (!(iface->flags & FLAG_STREAM_SUSPEND_AFTER_START)) { + UAC_GOTO_ON_ERROR(uac_host_interface_resume(iface), "Unable to enable UAC Interface"); + } + uac_host_interface_unlock(iface); + return ESP_OK; + +fail: + if (iface_claimed) { + uac_host_interface_release_and_free_transfer(iface); + } + uac_host_interface_unlock(iface); + return ret; +} + +esp_err_t uac_host_device_suspend(uac_host_device_handle_t uac_dev_handle) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(iface); + + UAC_RETURN_ON_ERROR(uac_host_interface_try_lock(iface, DEFAULT_CTRL_XFER_TIMEOUT_MS), "Unable to lock UAC Interface"); + if (UAC_INTERFACE_STATE_READY == iface->state) { + uac_host_interface_unlock(iface); + return ESP_OK; + } + esp_err_t ret = ESP_OK; + UAC_GOTO_ON_FALSE((UAC_INTERFACE_STATE_ACTIVE == iface->state), ESP_ERR_INVALID_STATE, "device not active"); + UAC_GOTO_ON_ERROR(uac_host_interface_suspend(iface), "Unable to disable UAC Interface"); + + uac_host_interface_unlock(iface); + return ESP_OK; + +fail: + uac_host_interface_unlock(iface); + return ret; +} + +esp_err_t uac_host_device_resume(uac_host_device_handle_t uac_dev_handle) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(iface); + + UAC_RETURN_ON_ERROR(uac_host_interface_try_lock(iface, DEFAULT_CTRL_XFER_TIMEOUT_MS), "Unable to lock UAC Interface"); + if (UAC_INTERFACE_STATE_ACTIVE == iface->state) { + uac_host_interface_unlock(iface); + return ESP_OK; + } + + esp_err_t ret = ESP_OK; + UAC_GOTO_ON_FALSE((UAC_INTERFACE_STATE_READY == iface->state), ESP_ERR_INVALID_STATE, "device not ready"); + UAC_GOTO_ON_ERROR(uac_host_interface_resume(iface), "Unable to enable UAC Interface"); + + uac_host_interface_unlock(iface); + return ESP_OK; + +fail: + uac_host_interface_unlock(iface); + return ret; +} + +esp_err_t uac_host_device_stop(uac_host_device_handle_t uac_dev_handle) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(iface); + + esp_err_t ret = ESP_OK; + UAC_RETURN_ON_ERROR(uac_host_interface_try_lock(iface, DEFAULT_CTRL_XFER_TIMEOUT_MS), "Unable to lock UAC Interface"); + if (UAC_INTERFACE_STATE_ACTIVE == iface->state) { + UAC_GOTO_ON_ERROR(uac_host_interface_suspend(iface), "Unable to disable UAC Interface"); + } + + if (UAC_INTERFACE_STATE_READY == iface->state) { + UAC_GOTO_ON_ERROR(uac_host_interface_release_and_free_transfer(iface), "Unable to release UAC Interface"); + } + + uac_host_interface_unlock(iface); + return ESP_OK; + +fail: + uac_host_interface_unlock(iface); + return ret; +} + +esp_err_t uac_host_device_read(uac_host_device_handle_t uac_dev_handle, uint8_t *data, uint32_t size, uint32_t *bytes_read, uint32_t timeout) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(iface); + UAC_RETURN_ON_INVALID_ARG(data); + UAC_RETURN_ON_INVALID_ARG(bytes_read); + + UAC_RETURN_ON_ERROR(uac_host_interface_try_lock(iface, DEFAULT_CTRL_XFER_TIMEOUT_MS), "Unable to lock UAC Interface"); + if (UAC_INTERFACE_STATE_ACTIVE != iface->state) { + uac_host_interface_unlock(iface); + return ESP_ERR_INVALID_STATE; + } + uac_host_interface_unlock(iface); + + size_t data_len = _ring_buffer_get_len(iface->ringbuf); + if (data_len > size) { + data_len = size; + } + esp_err_t ret = _ring_buffer_pop(iface->ringbuf, data, data_len, (size_t *)bytes_read, timeout); + + if (ESP_OK != ret) { + ESP_LOGD(TAG, "RX Ringbuffer read failed"); + return ret; + } + + return ESP_OK; +} + +esp_err_t uac_host_device_write(uac_host_device_handle_t uac_dev_handle, uint8_t *data, uint32_t size, uint32_t timeout) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(iface); + UAC_RETURN_ON_INVALID_ARG(data); + + // Only guarantee the data is written to the ringbuffer, in the case + // 1. the interface is active when the write is called + // Data will not be sent to the device and dropped in any of the following cases: + // 1. the pipe state changed to inactive during or after the ringbuffer write + // 2. the pipe state changed to inactive during continuous transfer submit + UAC_RETURN_ON_ERROR(uac_host_interface_try_lock(iface, DEFAULT_CTRL_XFER_TIMEOUT_MS), "Unable to lock UAC Interface"); + if (UAC_INTERFACE_STATE_ACTIVE != iface->state) { + uac_host_interface_unlock(iface); + return ESP_ERR_INVALID_STATE; + } + uac_host_interface_unlock(iface); + + esp_err_t ret = _ring_buffer_push(iface->ringbuf, data, size, timeout); + + if (ESP_OK != ret) { + ESP_LOGD(TAG, "TX Ringbuffer write failed"); + return ret; + } + + // We need to submit the transfer if there is free transfer in the list + for (int i = 0; i < iface->xfer_num; i++) { + UAC_ENTER_CRITICAL(); + if (iface->free_xfer_list[i]) { + size_t data_len = _ring_buffer_get_len(iface->ringbuf); + if (data_len == 0) { + goto exit_critical; + } + // if interface state changed to inactive during blocking write + // we need to return invalid state to safely exit the write function + if (UAC_INTERFACE_STATE_ACTIVE != iface->state) { + ret = ESP_ERR_INVALID_STATE; + goto exit_critical; + } + iface->xfer_list[i] = iface->free_xfer_list[i]; + iface->free_xfer_list[i] = NULL; + iface->xfer_list[i]->status = USB_TRANSFER_STATUS_COMPLETED; + UAC_EXIT_CRITICAL(); + stream_tx_xfer_submit(iface->xfer_list[i]); + UAC_ENTER_CRITICAL(); + } +exit_critical: + UAC_EXIT_CRITICAL(); + } + + return ret; +} + +esp_err_t uac_host_get_device_info(uac_host_device_handle_t uac_dev_handle, uac_host_dev_info_t *uac_dev_info) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_FALSE(iface, ESP_ERR_INVALID_STATE, "UAC Interface not found"); + UAC_RETURN_ON_FALSE(uac_dev_info, ESP_ERR_INVALID_ARG, "Wrong argument"); + memcpy(uac_dev_info, &iface->dev_info, sizeof(uac_host_dev_info_t)); + return ESP_OK; +} + +esp_err_t uac_host_device_set_mute(uac_host_device_handle_t uac_dev_handle, bool mute) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(iface); + // Check if the device is active or ready + UAC_RETURN_ON_FALSE((UAC_INTERFACE_STATE_ACTIVE == iface->state || UAC_INTERFACE_STATE_READY == iface->state), + ESP_ERR_INVALID_STATE, "device not ready or active"); + + UAC_RETURN_ON_ERROR(uac_cs_request_set_mute(iface, mute), "Unable to set mute"); + return ESP_OK; +} + +esp_err_t uac_host_device_set_volume(uac_host_device_handle_t uac_dev_handle, uint8_t volume) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(iface); + UAC_RETURN_ON_FALSE(volume <= 100, ESP_ERR_INVALID_ARG, "Invalid volume value"); + // Check if the device is active or ready + UAC_RETURN_ON_FALSE((UAC_INTERFACE_STATE_ACTIVE == iface->state || UAC_INTERFACE_STATE_READY == iface->state), + ESP_ERR_INVALID_STATE, "device not ready or active"); + + uint32_t volume_db = volume * UAC_SPK_VOLUME_STEP + UAC_SPK_VOLUME_MIN; + UAC_RETURN_ON_ERROR(uac_cs_request_set_volume(iface, volume_db), "Unable to set volume"); + return ESP_OK; +} + +esp_err_t uac_host_device_set_volume_db(uac_host_device_handle_t uac_dev_handle, uint32_t volume_db) +{ + uac_iface_t *iface = get_iface_by_handle(uac_dev_handle); + UAC_RETURN_ON_INVALID_ARG(iface); + // Check if the device is active or ready + UAC_RETURN_ON_FALSE((UAC_INTERFACE_STATE_ACTIVE == iface->state || UAC_INTERFACE_STATE_READY == iface->state), + ESP_ERR_INVALID_STATE, "device not ready or active"); + + UAC_RETURN_ON_ERROR(uac_cs_request_set_volume(iface, volume_db), "Unable to set volume"); + return ESP_OK; +} From d55ffc0ee4faa8d2d52d86b936cc95644896da10 Mon Sep 17 00:00:00 2001 From: leeebo Date: Wed, 8 May 2024 08:03:08 +0800 Subject: [PATCH 2/6] Update host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Peter Marčišovský <109745740+peter-marcisovsky@users.noreply.github.com> --- host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py b/host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py index f71cc2f1..a1ac613b 100644 --- a/host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py +++ b/host/class/uac/usb_host_uac/test_app/pytest_usb_host_uac.py @@ -6,11 +6,9 @@ import pytest from pytest_embedded_idf.dut import IdfDut - +# No runner marker, unable to mock UAC 1.0 device with tinyusb @pytest.mark.esp32s2 @pytest.mark.esp32s3 -@pytest.mark.temp_skip_ci(targets=['esp32s2', 'esp32s3'], reason='unable to mock UAC 1.0 device with tinyusb') -@pytest.mark.usb_host def test_usb_host_uac(dut: IdfDut) -> None: dut.expect_exact('Press ENTER to see the list of tests.') dut.write('[uac_host]') From fb6323826a104a59758027d26b89349fda538bf1 Mon Sep 17 00:00:00 2001 From: Li Bo Date: Wed, 8 May 2024 19:42:48 +0800 Subject: [PATCH 3/6] fix: support uac device with mixer unit --- host/class/uac/usb_host_uac/include/usb/uac.h | 34 +++ host/class/uac/usb_host_uac/uac_descriptors.c | 40 +++ host/class/uac/usb_host_uac/uac_host.c | 265 +++++++++++------- 3 files changed, 245 insertions(+), 94 deletions(-) diff --git a/host/class/uac/usb_host_uac/include/usb/uac.h b/host/class/uac/usb_host_uac/include/usb/uac.h index 09032482..a9c1b85b 100644 --- a/host/class/uac/usb_host_uac/include/usb/uac.h +++ b/host/class/uac/usb_host_uac/include/usb/uac.h @@ -408,6 +408,40 @@ typedef struct { uint8_t iTerminal; } __attribute__((packed)) uac_ac_output_terminal_desc_t; +/** + * @brief Audio Class-Specific AC Mixer Unit Descriptor + * + * @see Table 4-5 of audio10.pdf + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bUnitID; + uint8_t bNrInPins; + uint8_t baSourceID[2]; + uint8_t bNrChannels; + uint16_t wChannelConfig; + uint8_t iChannelNames; + uint8_t bmControls; + uint8_t iMixer; +} __attribute__((packed)) uac_ac_mixer_unit_desc_t; + +/** + * @brief Audio Class-Specific AC Selector Unit Descriptor + * + * @see Table 4-6 of audio10.pdf + */ +typedef struct { + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bDescriptorSubtype; + uint8_t bUnitID; + uint8_t bNrInPins; + uint8_t baSourceID[2]; + uint8_t iSelector; +} __attribute__((packed)) uac_ac_selector_unit_desc_t; + /** * @brief Audio Class-Specific AC Feature Unit Descriptor (ch=2, bControlSize=2) * diff --git a/host/class/uac/usb_host_uac/uac_descriptors.c b/host/class/uac/usb_host_uac/uac_descriptors.c index 1c6fa18a..bc5d6a44 100644 --- a/host/class/uac/usb_host_uac/uac_descriptors.c +++ b/host/class/uac/usb_host_uac/uac_descriptors.c @@ -155,6 +155,40 @@ static void print_ac_feature_desc(const uint8_t *buff) printf("\tiFeature %d\n", desc->iFeature); } +static void print_ac_mix_desc(const uint8_t *buff) +{ + const uac_ac_mixer_unit_desc_t *desc = (const uac_ac_mixer_unit_desc_t *)buff; + printf("\t*** Audio control mixer unit descriptor ***\n"); + printf("\tbLength %d\n", desc->bLength); + printf("\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); + printf("\tbUnitID %d\n", desc->bUnitID); + printf("\tbNrInPins %d\n", desc->bNrInPins); + for (size_t i = 0; i < desc->bNrInPins; ++i) { + printf("\tbSourceID[%d] %d\n", i, desc->baSourceID[i]); + } + printf("\tbNrChannels %d\n", buff[5 + desc->bNrInPins]); + printf("\twChannelConfig 0x%x\n", buff[6 + desc->bNrInPins] | (buff[7 + desc->bNrInPins] << 8)); + printf("\tiChannelNames %d\n", buff[8 + desc->bNrInPins]); + printf("\tbmControls 0x%x\n", buff[9 + desc->bNrInPins]); + printf("\tiMixer %d\n", buff[10 + desc->bNrInPins]); +} + +static void print_ac_selector_desc(const uint8_t *buff) +{ + const uac_ac_selector_unit_desc_t *desc = (const uac_ac_selector_unit_desc_t *)buff; + printf("\t*** Audio control selector unit descriptor ***\n"); + printf("\tbLength %d\n", desc->bLength); + printf("\tbDescriptorType 0x%x\n", desc->bDescriptorType); + printf("\tbDescriptorSubtype 0x%x\n", desc->bDescriptorSubtype); + printf("\tbUnitID %d\n", desc->bUnitID); + printf("\tbNrInPins %d\n", desc->bNrInPins); + for (size_t i = 0; i < desc->bNrInPins; ++i) { + printf("\tbSourceID[%d] %d\n", i, desc->baSourceID[i]); + } + printf("\tiSelector %d\n", buff[5 + desc->bNrInPins]); +} + static void parse_as_ep_general_desc(const uint8_t *buff) { const uac_as_cs_ep_desc_t *desc = (const uac_as_cs_ep_desc_t *)buff; @@ -235,6 +269,12 @@ static void print_uac_class_descriptors(const usb_standard_desc_t *desc, uint8_t case UAC_AC_FEATURE_UNIT: print_ac_feature_desc(buff); break; + case UAC_AC_MIXER_UNIT: + print_ac_mix_desc(buff); + break; + case UAC_AC_SELECTOR_UNIT: + print_ac_selector_desc(buff); + break; default: goto unknown; break; diff --git a/host/class/uac/usb_host_uac/uac_host.c b/host/class/uac/usb_host_uac/uac_host.c index 9326cf64..5cb951d4 100644 --- a/host/class/uac/usb_host_uac/uac_host.c +++ b/host/class/uac/usb_host_uac/uac_host.c @@ -98,14 +98,7 @@ typedef struct uac_host_device { SemaphoreHandle_t ctrl_xfer_done; /*!< Control transfer semaphore */ usb_transfer_t *ctrl_xfer; /*!< Pointer to control transfer buffer */ uint8_t ctrl_iface_num; /*!< Control interface number */ - uint8_t input_terminal[UAC_STREAM_MAX]; /*!< Input terminal ID */ - uint8_t input_channel[UAC_STREAM_MAX]; /*!< Input channel ID */ - uint8_t output_terminal[UAC_STREAM_MAX]; /*!< Output terminal ID */ - uint8_t feature_unit[UAC_STREAM_MAX]; /*!< Feature unit ID */ - uint8_t mute_ch_map[UAC_STREAM_MAX]; /*!< Channel bitmap mark which channel support mute, - eg. 0x01 - 0b00000001 : channel 0 support mute */ - uint8_t vol_ch_map[UAC_STREAM_MAX]; /*!< Channel bitmap mark which channel support volume control, - eg. 0x03 - 0b00000011 : channel 0 and 1 support volume control */ + uint8_t *cs_ac_desc; /*!< Class-Specific Audio Control Interface descriptor */ } uac_device_t; /** @@ -132,6 +125,9 @@ typedef struct uac_interface_alt { uint8_t ep_attr; /*!< audio stream endpoint attributes */ uint8_t interval; /*!< audio stream endpoint interval */ uint8_t connected_terminal; /*!< connected terminal ID */ + uint8_t feature_unit; /*!< connected feature unit ID */ + uint8_t vol_ch_map; /*!< volume channel map */ + uint8_t mute_ch_map; /*!< mute channel map */ bool freq_ctrl_supported; /*!< sampling frequency control supported */ uac_host_dev_alt_param_t dev_alt_param; /*!< audio stream alternate setting parameters */ } uac_iface_alt_t; @@ -480,6 +476,140 @@ static inline esp_err_t uac_host_interface_unlock(uac_iface_t *iface) return (xSemaphoreGive(iface->state_mutex) ? ESP_OK : ESP_FAIL); } +static uint8_t _uac_next_linked_uint_id(const uint8_t *desc, uint8_t unit_id, uint8_t **feat_desc) +{ + *feat_desc = NULL; + if (!desc) { + return 0; + } + uac_ac_header_desc_t *header_desc = (uac_ac_header_desc_t *)desc; + const size_t total_length = header_desc->wTotalLength; + int uac_desc_offset = 0; + const uac_desc_header_t *uac_cs_desc = (const uac_desc_header_t *)header_desc; + while (uac_cs_desc) { + switch (uac_cs_desc->bDescriptorSubtype) { + case UAC_AC_HEADER: + case UAC_AC_INPUT_TERMINAL: + break; + case UAC_AC_OUTPUT_TERMINAL: { + const uac_ac_output_terminal_desc_t *output_terminal_desc = (const uac_ac_output_terminal_desc_t *)uac_cs_desc; + if (output_terminal_desc->bSourceID == unit_id) { + return output_terminal_desc->bTerminalID; + } + break; + } + case UAC_AC_FEATURE_UNIT: { + const uac_ac_feature_unit_desc_t *feature_unit_desc = (const uac_ac_feature_unit_desc_t *)uac_cs_desc; + if (feature_unit_desc->bSourceID == unit_id) { + *feat_desc = (uint8_t *)feature_unit_desc; + return feature_unit_desc->bUnitID; + } + break; + } + case UAC_AC_SELECTOR_UNIT: { + const uac_ac_selector_unit_desc_t *selector_unit_desc = (const uac_ac_selector_unit_desc_t *)uac_cs_desc; + for (int i = 0; i < selector_unit_desc->bNrInPins; i++) { + if (selector_unit_desc->baSourceID[i] == unit_id) { + return selector_unit_desc->bUnitID; + } + } + break; + } + case UAC_AC_MIXER_UNIT: { + const uac_ac_mixer_unit_desc_t *mixer_unit_desc = (const uac_ac_mixer_unit_desc_t *)uac_cs_desc; + for (int i = 0; i < mixer_unit_desc->bNrInPins; i++) { + if (mixer_unit_desc->baSourceID[i] == unit_id) { + return mixer_unit_desc->bUnitID; + } + } + break; + } + default: + ESP_LOGD(TAG, "UAC Unknown Descriptor Subtype %d", uac_cs_desc->bDescriptorSubtype); + break; + } + uac_cs_desc = (uac_desc_header_t *)GET_NEXT_DESC(uac_cs_desc, total_length, uac_desc_offset); + } + return 0; +} + +static uint8_t _uac_last_linked_uint_id(const uint8_t *desc, uint8_t unit_id, uint8_t **feat_desc) +{ + *feat_desc = NULL; + if (!desc) { + return 0; + } + uac_ac_header_desc_t *header_desc = (uac_ac_header_desc_t *)desc; + const size_t total_length = header_desc->wTotalLength; + int uac_desc_offset = 0; + const uac_desc_header_t *uac_cs_desc = (const uac_desc_header_t *)header_desc; + while (uac_cs_desc) { + switch (uac_cs_desc->bDescriptorSubtype) { + case UAC_AC_HEADER: + case UAC_AC_INPUT_TERMINAL: + break; + case UAC_AC_OUTPUT_TERMINAL: { + const uac_ac_output_terminal_desc_t *output_terminal_desc = (const uac_ac_output_terminal_desc_t *)uac_cs_desc; + if (output_terminal_desc->bTerminalID == unit_id) { + return output_terminal_desc->bSourceID; + } + break; + } + case UAC_AC_FEATURE_UNIT: { + const uac_ac_feature_unit_desc_t *feature_unit_desc = (const uac_ac_feature_unit_desc_t *)uac_cs_desc; + if (feature_unit_desc->bUnitID == unit_id) { + *feat_desc = (uint8_t *)feature_unit_desc; + return feature_unit_desc->bSourceID; + } + break; + } + case UAC_AC_SELECTOR_UNIT: { + const uac_ac_selector_unit_desc_t *selector_unit_desc = (const uac_ac_selector_unit_desc_t *)uac_cs_desc; + if (selector_unit_desc->bUnitID == unit_id) { + // for basic audio device, the first source should be microphone + return selector_unit_desc->baSourceID[0]; + } + break; + } + case UAC_AC_MIXER_UNIT: { + const uac_ac_mixer_unit_desc_t *mixer_unit_desc = (const uac_ac_mixer_unit_desc_t *)uac_cs_desc; + if (mixer_unit_desc->bUnitID == unit_id) { + return mixer_unit_desc->baSourceID[0]; + } + break; + } + default: + ESP_LOGD(TAG, "UAC Unknown Descriptor Subtype %d", uac_cs_desc->bDescriptorSubtype); + break; + } + uac_cs_desc = (uac_desc_header_t *)GET_NEXT_DESC(uac_cs_desc, total_length, uac_desc_offset); + } + return 0; +} + +static uac_ac_feature_unit_desc_t *_uac_host_device_find_feature_unit(const uint8_t *header_desc, uint8_t terminal_id, bool if_input) +{ + if (!header_desc) { + return NULL; + } + + uint8_t unit_id = terminal_id; + uac_ac_feature_unit_desc_t *feature_unit_desc = NULL; + if (if_input) { + while (feature_unit_desc == NULL && unit_id != 0) { + unit_id = _uac_next_linked_uint_id(header_desc, unit_id, (uint8_t **)&feature_unit_desc); + ESP_LOGD(TAG, "Input Terminal next linked unit ID %d", unit_id); + } + } else { + while (feature_unit_desc == NULL && unit_id != 0) { + unit_id = _uac_last_linked_uint_id(header_desc, unit_id, (uint8_t **)&feature_unit_desc); + ESP_LOGD(TAG, "Output Terminal last linked unit ID %d", unit_id); + } + } + + return feature_unit_desc; +} + /** * @brief Add a new logical device/interface to the UAC driver * @param[in] iface_num Interface number @@ -521,6 +651,7 @@ static esp_err_t uac_host_interface_add(uac_device_t *uac_device, uint8_t iface_ uac_iface->iface_alt = realloc(uac_iface->iface_alt, iface_alt_idx * sizeof(uac_iface_alt_t)); UAC_GOTO_ON_FALSE(uac_iface->iface_alt, ESP_ERR_NO_MEM, "Unable to allocate memory"); uac_iface_alt_t *iface_alt = &uac_iface->iface_alt[iface_alt_idx - 1]; + memset(iface_alt, 0, sizeof(uac_iface_alt_t)); iface_alt->alt_idx = iface_alt_desc->bAlternateSetting; // Parse each descriptor following the alternate interface descriptor int cs_offset = iface_alt_offset; @@ -534,27 +665,13 @@ static esp_err_t uac_host_interface_add(uac_device_t *uac_device, uint8_t iface_ const uac_as_general_desc_t *as_general_desc = (const uac_as_general_desc_t *)uac_desc; iface_alt->dev_alt_param.format = as_general_desc->wFormatTag; iface_alt->connected_terminal = as_general_desc->bTerminalLink; - // connected terminal can only be RX input or TX output terminal - if (iface_alt->connected_terminal == uac_device->output_terminal[UAC_STREAM_RX]) { - iface_alt->dev_alt_param.channels = uac_device->input_channel[UAC_STREAM_RX]; - // set the interface type to RX, used to check the interface supported feature - uac_iface->dev_info.type = UAC_STREAM_RX; - ESP_LOGD(TAG, "RX: UAC AS connected terminal %d", as_general_desc->bTerminalLink); - } else if (iface_alt->connected_terminal == uac_device->input_terminal[UAC_STREAM_TX]) { - iface_alt->dev_alt_param.channels = uac_device->input_channel[UAC_STREAM_TX]; - uac_iface->dev_info.type = UAC_STREAM_TX; - ESP_LOGD(TAG, "TX: UAC AS connected terminal %d", as_general_desc->bTerminalLink); - } else { - ESP_LOGE(TAG, "UAC AS connected terminal %d", as_general_desc->bTerminalLink); - UAC_GOTO_ON_FALSE(0, ESP_ERR_NOT_SUPPORTED, "UAC AS General connected terminal not exist"); - } } else if (uac_desc->bDescriptorSubtype == UAC_AS_FORMAT_TYPE) { const uac_as_type_I_format_desc_t *as_format_type_desc = (const uac_as_type_I_format_desc_t *)uac_desc; if (as_format_type_desc->bFormatType != UAC_FORMAT_TYPE_I) { ESP_LOGE(TAG, "UAC Format Type %d", as_format_type_desc->bFormatType); UAC_GOTO_ON_FALSE(0, ESP_ERR_NOT_SUPPORTED, "UAC Format Type not supported"); } - UAC_GOTO_ON_FALSE(iface_alt->dev_alt_param.channels == as_format_type_desc->bNrChannels, ESP_ERR_INVALID_STATE, "UAC AS Format Type channels not match"); + iface_alt->dev_alt_param.channels = as_format_type_desc->bNrChannels; iface_alt->dev_alt_param.bit_resolution = as_format_type_desc->bBitResolution; iface_alt->dev_alt_param.sample_freq_type = as_format_type_desc->bSamFreqType; if (as_format_type_desc->bSamFreqType == 0) { @@ -580,6 +697,24 @@ static esp_err_t uac_host_interface_add(uac_device_t *uac_device, uint8_t iface_ iface_alt->ep_mps = ep_desc->wMaxPacketSize; iface_alt->ep_attr = ep_desc->bmAttributes; iface_alt->interval = ep_desc->bInterval; + uac_iface->dev_info.type = (ep_desc->bEndpointAddress & UAC_EP_DIR_IN) ? UAC_STREAM_RX : UAC_STREAM_TX; + uac_ac_feature_unit_desc_t *feature_unit_desc = _uac_host_device_find_feature_unit((uint8_t *)uac_device->cs_ac_desc, + iface_alt->connected_terminal, !(ep_desc->bEndpointAddress & UAC_EP_DIR_IN)); + if (feature_unit_desc) { + iface_alt->feature_unit = feature_unit_desc->bUnitID; + uint8_t ch_num = 0; + for (size_t i = 0; i < (feature_unit_desc->bLength - 7) / feature_unit_desc->bControlSize; i++) { + if (feature_unit_desc->bmaControls[i * feature_unit_desc->bControlSize] & UAC_FU_CONTROL_POS_VOLUME) { + iface_alt->vol_ch_map |= (1 << ch_num); + } + if (feature_unit_desc->bmaControls[i * feature_unit_desc->bControlSize] & UAC_FU_CONTROL_POS_MUTE) { + iface_alt->mute_ch_map |= (1 << ch_num); + } + ch_num++; + } + ESP_LOGD(TAG, "UAC %s Feature Unit ID %d, Volume Ch Map %02X, Mute Ch Map %02X", uac_iface->dev_info.type == UAC_STREAM_RX ? "RX" : "TX", + feature_unit_desc->bUnitID, iface_alt->vol_ch_map, iface_alt->mute_ch_map); + } ESP_LOGD(TAG, "UAC Endpoint 0x%02X, Max Packet Size %d, Attributes 0x%02X, Interval %d", ep_desc->bEndpointAddress, ep_desc->wMaxPacketSize, ep_desc->bmAttributes, ep_desc->bInterval); break; } @@ -1185,8 +1320,7 @@ static esp_err_t _uac_host_device_add(uint8_t addr, usb_device_handle_t dev_hdl, // 1. Parse the configuration descriptor to find only the first the UAC control interface // 2. Parse each class specific audio control interface // 2.1. for header descriptor, check if it is supported uac version - // 2.2. find RX, TX corresponding input/output terminal id, input channel config bitmap - // 2.3. find RX, TX corresponding feature unit, volume and mute control ability + // 2.2. save the class specific audio control descriptor for future use if (iface_desc->bInterfaceClass == USB_CLASS_AUDIO && iface_desc->bInterfaceSubClass == UAC_SUBCLASS_AUDIOCONTROL) { ESP_LOGD(TAG, "Found UAC Control, bInterfaceNumber=%d", iface_desc->bInterfaceNumber); uac_cs_desc = GET_NEXT_UAC_CS_DESC(iface_desc, total_length, uac_desc_offset); @@ -1201,75 +1335,14 @@ static esp_err_t _uac_host_device_add(uint8_t addr, usb_device_handle_t dev_hdl, free(uac_device); return ESP_ERR_NOT_SUPPORTED; } + uint8_t *cs_ac_desc = calloc(header_desc->wTotalLength, sizeof(uint8_t)); + UAC_GOTO_ON_FALSE(cs_ac_desc, ESP_ERR_NO_MEM, "Unable to allocate memory for UAC Control CS descriptor"); + memcpy(cs_ac_desc, uac_cs_desc, header_desc->wTotalLength); + uac_device->cs_ac_desc = cs_ac_desc; ESP_LOGD(TAG, "UAC version %04X", header_desc->bcdADC); break; } - case UAC_AC_INPUT_TERMINAL: { - const uac_ac_input_terminal_desc_t *input_terminal_desc = (const uac_ac_input_terminal_desc_t *)uac_cs_desc; - if (input_terminal_desc->wTerminalType == UAC_USB_TERMINAL_TYPE_USB_STREAMING) { - uac_device->input_terminal[UAC_STREAM_TX] = input_terminal_desc->bTerminalID; - uac_device->input_channel[UAC_STREAM_TX] = input_terminal_desc->bNrChannels; - ESP_LOGD(TAG, "TX: UAC Input Terminal ID %d, Channel %d", input_terminal_desc->bTerminalID, - input_terminal_desc->bNrChannels); - } else { - // We don't care the terminal type - uac_device->input_terminal[UAC_STREAM_RX] = input_terminal_desc->bTerminalID; - uac_device->input_channel[UAC_STREAM_RX] = input_terminal_desc->bNrChannels; - ESP_LOGD(TAG, "RX: UAC Input Terminal ID %d, Channel %d", input_terminal_desc->bTerminalID, - input_terminal_desc->bNrChannels); - } - break; - } - case UAC_AC_FEATURE_UNIT: { - const uac_ac_feature_unit_desc_t *feature_unit_desc = (const uac_ac_feature_unit_desc_t *)uac_cs_desc; - // check the feature unit ID corresponding to the input terminal - if (feature_unit_desc->bSourceID == uac_device->input_terminal[UAC_STREAM_RX]) { - uac_device->feature_unit[UAC_STREAM_RX] = feature_unit_desc->bUnitID; - uint8_t ch_num = 0; - for (size_t i = 0; i < (feature_unit_desc->bLength - 7) / feature_unit_desc->bControlSize; i += feature_unit_desc->bControlSize) { - if (feature_unit_desc->bmaControls[i] & UAC_FU_CONTROL_POS_VOLUME) { - uac_device->vol_ch_map[UAC_STREAM_RX] |= (1 << ch_num); - } - if (feature_unit_desc->bmaControls[i] & UAC_FU_CONTROL_POS_MUTE) { - uac_device->mute_ch_map[UAC_STREAM_RX] |= (1 << ch_num); - } - ch_num++; - } - ESP_LOGD(TAG, "RX: UAC Feature Unit ID %d, Volume Ch Map %02X, Mute Ch Map %02X", feature_unit_desc->bUnitID, - uac_device->vol_ch_map[UAC_STREAM_RX], uac_device->mute_ch_map[UAC_STREAM_RX]); - } else if (feature_unit_desc->bSourceID == uac_device->input_terminal[UAC_STREAM_TX]) { - uac_device->feature_unit[UAC_STREAM_TX] = feature_unit_desc->bUnitID; - uint8_t ch_num = 0; - for (size_t i = 0; i < (feature_unit_desc->bLength - 7) / feature_unit_desc->bControlSize; i++) { - if (feature_unit_desc->bmaControls[i * feature_unit_desc->bControlSize] & UAC_FU_CONTROL_POS_VOLUME) { - uac_device->vol_ch_map[UAC_STREAM_TX] |= (1 << ch_num); - } - if (feature_unit_desc->bmaControls[i * feature_unit_desc->bControlSize] & UAC_FU_CONTROL_POS_MUTE) { - uac_device->mute_ch_map[UAC_STREAM_TX] |= (1 << ch_num); - } - ch_num++; - } - ESP_LOGD(TAG, "TX: UAC Feature Unit ID %d, Volume Ch Map %02X, Mute Ch Map %02X", feature_unit_desc->bUnitID, - uac_device->vol_ch_map[UAC_STREAM_TX], uac_device->mute_ch_map[UAC_STREAM_TX]); - } else { - ESP_LOGW(TAG, "Feature Unit ID %d not corresponding to the input terminal", feature_unit_desc->bUnitID); - } - break; - } - case UAC_AC_OUTPUT_TERMINAL: { - const uac_ac_output_terminal_desc_t *output_terminal_desc = (const uac_ac_output_terminal_desc_t *)uac_cs_desc; - if (output_terminal_desc->wTerminalType == UAC_USB_TERMINAL_TYPE_USB_STREAMING) { - uac_device->output_terminal[UAC_STREAM_RX] = output_terminal_desc->bTerminalID; - ESP_LOGD(TAG, "RX: UAC Output Terminal ID %d", output_terminal_desc->bTerminalID); - } else { - // We don't care the terminal type - uac_device->output_terminal[UAC_STREAM_TX] = output_terminal_desc->bTerminalID; - ESP_LOGD(TAG, "TX: UAC Output Terminal ID %d", output_terminal_desc->bTerminalID); - } - break; - } default: - ESP_LOGD(TAG, "Skip UAC CS bDescriptorSubtype=%d", uac_cs_desc->bDescriptorSubtype); break; } uac_cs_desc = (uac_desc_header_t *)GET_NEXT_DESC(uac_cs_desc, total_length, uac_desc_offset); @@ -1329,6 +1402,10 @@ static esp_err_t _uac_host_device_delete(uac_device_t *uac_device) vSemaphoreDelete(uac_device->device_busy); } + if (uac_device->cs_ac_desc) { + free(uac_device->cs_ac_desc); + } + ESP_LOGD(TAG, "Remove addr %d device from list", uac_device->addr); UAC_ENTER_CRITICAL(); @@ -1488,8 +1565,8 @@ static esp_err_t uac_cs_request_set_ep_frequency(uac_iface_t *iface, uint8_t ep_ */ static esp_err_t uac_cs_request_set_volume(uac_iface_t *iface, uint32_t volume) { - uint8_t feature_unit = iface->parent->feature_unit[iface->dev_info.type]; - uint8_t vol_ch_map = iface->parent->vol_ch_map[iface->dev_info.type]; + uint8_t feature_unit = iface->iface_alt[iface->cur_alt].feature_unit; + uint8_t vol_ch_map = iface->iface_alt[iface->cur_alt].vol_ch_map; UAC_RETURN_ON_FALSE(feature_unit && vol_ch_map, ESP_ERR_NOT_SUPPORTED, "volume control not supported"); uint8_t ctrl_iface_num = iface->parent->ctrl_iface_num; uint8_t tmp[2] = { 0, 0 }; @@ -1528,8 +1605,8 @@ static esp_err_t uac_cs_request_set_volume(uac_iface_t *iface, uint32_t volume) */ static esp_err_t uac_cs_request_set_mute(uac_iface_t *iface, bool mute) { - uint8_t feature_unit = iface->parent->feature_unit[iface->dev_info.type]; - uint8_t mute_ch_map = iface->parent->mute_ch_map[iface->dev_info.type]; + uint8_t feature_unit = iface->iface_alt[iface->cur_alt].feature_unit; + uint8_t mute_ch_map = iface->iface_alt[iface->cur_alt].mute_ch_map; UAC_RETURN_ON_FALSE(feature_unit, ESP_ERR_NOT_SUPPORTED, "mute control not supported"); uint8_t ctrl_iface_num = iface->parent->ctrl_iface_num; uint8_t tmp[1] = { 0 }; From a744b4ebf36502eb518c6438f11fa75cce768a93 Mon Sep 17 00:00:00 2001 From: leeebo Date: Fri, 10 May 2024 08:14:32 +0800 Subject: [PATCH 4/6] Update host/class/uac/usb_host_uac/test_app/sdkconfig.defaults MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Peter Marčišovský <109745740+peter-marcisovsky@users.noreply.github.com> --- host/class/uac/usb_host_uac/test_app/sdkconfig.defaults | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/host/class/uac/usb_host_uac/test_app/sdkconfig.defaults b/host/class/uac/usb_host_uac/test_app/sdkconfig.defaults index c2ff8991..4fd2fed0 100644 --- a/host/class/uac/usb_host_uac/test_app/sdkconfig.defaults +++ b/host/class/uac/usb_host_uac/test_app/sdkconfig.defaults @@ -5,4 +5,8 @@ CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_FREERTOS_HZ=1000 CONFIG_USB_HOST_CONTROL_TRANSFER_MAX_SIZE=2048 -CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT=y \ No newline at end of file +CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT=y + +# Disable watchdogs, they'd get triggered during unity interactive menu +CONFIG_ESP_INT_WDT=n +CONFIG_ESP_TASK_WDT=n \ No newline at end of file From 1fe33c0eec03c480906d8879a9d9609edf4fc9da Mon Sep 17 00:00:00 2001 From: Li Bo Date: Fri, 10 May 2024 09:24:03 +0800 Subject: [PATCH 5/6] fix: add comments in test app --- .../test_app/main/test_host_uac.c | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c b/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c index ae61c8d8..feff5fca 100644 --- a/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c +++ b/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c @@ -294,6 +294,10 @@ void test_handle_dev_connection(uint8_t *iface_num, uint8_t *if_rx) } } +/** + * @brief Test with known UAC device, check if the device's parameters are parsed correctly + * @note please modify the known device parameters if the device is changed + */ TEST_CASE("test uac device handling", "[uac_host][known_device]") { test_uac_setup(); @@ -371,6 +375,9 @@ TEST_CASE("test uac device handling", "[uac_host][known_device]") // Verify the memory leackage during test environment tearDown() } +/** + * @brief record the rx stream data from microphone + */ TEST_CASE("test uac rx reading", "[uac_host][rx]") { // write test for uac rx @@ -445,6 +452,10 @@ TEST_CASE("test uac rx reading", "[uac_host][rx]") test_uac_teardown(false); } +/** + * @brief playback the wav sound to speaker, the wav will be down-sampled + * if the device's sample frequency is not matched + */ TEST_CASE("test uac tx writing", "[uac_host][tx]") { // write test for uac tx @@ -552,7 +563,7 @@ TEST_CASE("test uac tx writing", "[uac_host][tx]") s_buffer = (uint16_t *)(wav_file_start + 44); volume += 20; TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_volume(uac_device_handle, volume > 100 ? 100 : volume)); - printf("Volume: %" PRIu32 "\n", volume); + printf("Volume: %" PRIu32 "\n", volume > 100 ? 100 : volume); } else { // fill the tx buffer with wav file data tx_size = tx_buffer_threshold; @@ -604,6 +615,10 @@ TEST_CASE("test uac tx writing", "[uac_host][tx]") test_uac_teardown(false); } +/** + * @brief loopback the microphone received data to speaker + * please use a headset with microphone and speaker to test this function + */ TEST_CASE("test uac tx rx loopback", "[uac_host][tx][rx]") { test_uac_setup(); @@ -753,6 +768,11 @@ TEST_CASE("test uac tx rx loopback", "[uac_host][tx][rx]") test_uac_teardown(false); } +/** + * @brief: Test disconnect the device when the stream is running + * @note: Currently, the P4 PHY can't be controlled to emulate the hot-plug event, + * so the test is disabled + */ #if !CONFIG_IDF_TARGET_ESP32P4 TEST_CASE("test uac tx rx loopback with disconnect", "[uac_host][tx][rx][hot-plug]") { From e989f9abb965a09b26ebc9f59ab5511c0e4f2d36 Mon Sep 17 00:00:00 2001 From: Li Bo Date: Thu, 23 May 2024 11:03:02 +0800 Subject: [PATCH 6/6] fix(test_app): restore from failed uac test --- .../test_app/main/test_app_main.c | 5 +++ .../test_app/main/test_host_uac.c | 40 +++++-------------- 2 files changed, 15 insertions(+), 30 deletions(-) diff --git a/host/class/uac/usb_host_uac/test_app/main/test_app_main.c b/host/class/uac/usb_host_uac/test_app/main/test_app_main.c index b25c8df7..8a6bd49f 100644 --- a/host/class/uac/usb_host_uac/test_app/main/test_app_main.c +++ b/host/class/uac/usb_host_uac/test_app/main/test_app_main.c @@ -40,16 +40,21 @@ void app_main(void) UNITY_END(); } +extern void test_uac_setup(void); +extern void test_uac_teardown(bool); + /* setUp runs before every test */ void setUp(void) { before_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT); before_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT); + test_uac_setup(); } /* tearDown runs after every test */ void tearDown(void) { + test_uac_teardown(false); size_t after_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT); size_t after_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT); check_leak(before_free_8bit, after_free_8bit, "8BIT"); diff --git a/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c b/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c index feff5fca..9f9629ee 100644 --- a/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c +++ b/host/class/uac/usb_host_uac/test_app/main/test_host_uac.c @@ -72,7 +72,7 @@ static void force_conn_state(bool connected, TickType_t delay_ticks) //Delay of 0 ticks causes a yield. So skip if delay_ticks is 0. vTaskDelay(delay_ticks); } - ESP_ERROR_CHECK(usb_phy_action(phy_hdl, (connected) ? USB_PHY_ACTION_HOST_ALLOW_CONN : USB_PHY_ACTION_HOST_FORCE_DISCONN)); + TEST_ASSERT_EQUAL(ESP_OK, usb_phy_action(phy_hdl, (connected) ? USB_PHY_ACTION_HOST_ALLOW_CONN : USB_PHY_ACTION_HOST_FORCE_DISCONN)); } typedef enum { @@ -106,7 +106,7 @@ static void uac_device_callback(uac_host_device_handle_t uac_device_handle, cons { if (event == UAC_HOST_DRIVER_EVENT_DISCONNECTED) { ESP_LOGI(TAG, "UAC Device disconnected"); - ESP_ERROR_CHECK(uac_host_device_close(uac_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_close(uac_device_handle)); return; } // Send uac device event to the event queue @@ -155,7 +155,7 @@ static void usb_lib_task(void *arg) .intr_flags = ESP_INTR_FLAG_LEVEL1, }; - ESP_ERROR_CHECK(usb_host_install(&host_config)); + TEST_ASSERT_EQUAL(ESP_OK, usb_host_install(&host_config)); ESP_LOGI(TAG, "USB Host installed"); xTaskNotifyGive(arg); @@ -179,8 +179,8 @@ static void usb_lib_task(void *arg) ESP_LOGI(TAG, "USB Host shutdown"); // Clean up USB Host vTaskDelay(10); // Short delay to allow clients clean-up - ESP_ERROR_CHECK(usb_host_uninstall()); - ESP_ERROR_CHECK(usb_del_phy(phy_hdl)); //Tear down USB PHY + TEST_ASSERT_EQUAL(ESP_OK, usb_host_uninstall()); + TEST_ASSERT_EQUAL(ESP_OK, usb_del_phy(phy_hdl)); //Tear down USB PHY phy_hdl = NULL; // set bit BIT0_USB_HOST_DRIVER_REMOVED to notify driver removed xEventGroupSetBits(s_evt_handle, BIT0_USB_HOST_DRIVER_REMOVED); @@ -219,7 +219,7 @@ void test_uac_setup(void) .callback_arg = NULL }; - ESP_ERROR_CHECK(uac_host_install(&uac_config)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_install(&uac_config)); ESP_LOGI(TAG, "UAC Class Driver installed"); } @@ -236,7 +236,7 @@ void test_uac_teardown(bool force) vTaskDelay(500); // uninstall uac host driver ESP_LOGI(TAG, "UAC Driver uninstall"); - ESP_ERROR_CHECK(uac_host_uninstall()); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_uninstall()); // Wait for USB lib task to finish xEventGroupWaitBits(s_evt_handle, BIT0_USB_HOST_DRIVER_REMOVED, pdTRUE, pdTRUE, portMAX_DELAY); // delete event queue and event group @@ -257,7 +257,7 @@ void test_open_mic_device(uint8_t iface_num, uint32_t buffer_size, uint32_t buff .callback = uac_device_callback, .callback_arg = NULL, }; - ESP_ERROR_CHECK(uac_host_device_open(&dev_config, uac_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_open(&dev_config, uac_device_handle)); } void test_open_spk_device(uint8_t iface_num, uint32_t buffer_size, uint32_t buffer_threshold, uac_host_device_handle_t *uac_device_handle) @@ -271,12 +271,12 @@ void test_open_spk_device(uint8_t iface_num, uint32_t buffer_size, uint32_t buff .callback = uac_device_callback, .callback_arg = NULL, }; - ESP_ERROR_CHECK(uac_host_device_open(&dev_config, uac_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_open(&dev_config, uac_device_handle)); } void test_close_device(uac_host_device_handle_t uac_device_handle) { - ESP_ERROR_CHECK(uac_host_device_close(uac_device_handle)); + TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_close(uac_device_handle)); } void test_handle_dev_connection(uint8_t *iface_num, uint8_t *if_rx) @@ -300,7 +300,6 @@ void test_handle_dev_connection(uint8_t *iface_num, uint8_t *if_rx) */ TEST_CASE("test uac device handling", "[uac_host][known_device]") { - test_uac_setup(); // handle device connection uint8_t mic_iface_num = 0; uint8_t spk_iface_num = 0; @@ -369,10 +368,6 @@ TEST_CASE("test uac device handling", "[uac_host][known_device]") // reset the queue test_uac_queue_reset(); } - - // Tear down test - test_uac_teardown(false); - // Verify the memory leackage during test environment tearDown() } /** @@ -380,9 +375,6 @@ TEST_CASE("test uac device handling", "[uac_host][known_device]") */ TEST_CASE("test uac rx reading", "[uac_host][rx]") { - // write test for uac rx - test_uac_setup(); - uint8_t mic_iface_num = 0; uint8_t spk_iface_num = 0; uint8_t if_rx = false; @@ -449,7 +441,6 @@ TEST_CASE("test uac rx reading", "[uac_host][rx]") TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_close(uac_device_handle)); free(rx_buffer); - test_uac_teardown(false); } /** @@ -458,9 +449,6 @@ TEST_CASE("test uac rx reading", "[uac_host][rx]") */ TEST_CASE("test uac tx writing", "[uac_host][tx]") { - // write test for uac tx - test_uac_setup(); - // handle device connection uint8_t mic_iface_num = 0; uint8_t spk_iface_num = 0; @@ -611,8 +599,6 @@ TEST_CASE("test uac tx writing", "[uac_host][tx]") free(tx_buffer); TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_set_mute(uac_device_handle, 1)); TEST_ASSERT_EQUAL(ESP_OK, uac_host_device_close(uac_device_handle)); - - test_uac_teardown(false); } /** @@ -621,8 +607,6 @@ TEST_CASE("test uac tx writing", "[uac_host][tx]") */ TEST_CASE("test uac tx rx loopback", "[uac_host][tx][rx]") { - test_uac_setup(); - // handle device connection uint8_t mic_iface_num = 0; uint8_t spk_iface_num = 0; @@ -765,7 +749,6 @@ TEST_CASE("test uac tx rx loopback", "[uac_host][tx][rx]") if (rx_buffer_stereo) { free(rx_buffer_stereo); } - test_uac_teardown(false); } /** @@ -776,8 +759,6 @@ TEST_CASE("test uac tx rx loopback", "[uac_host][tx][rx]") #if !CONFIG_IDF_TARGET_ESP32P4 TEST_CASE("test uac tx rx loopback with disconnect", "[uac_host][tx][rx][hot-plug]") { - test_uac_setup(); - // handle device connection uint8_t mic_iface_num = 0; uint8_t spk_iface_num = 0; @@ -919,6 +900,5 @@ TEST_CASE("test uac tx rx loopback with disconnect", "[uac_host][tx][rx][hot-plu if (rx_buffer_stereo) { free(rx_buffer_stereo); } - test_uac_teardown(false); } #endif

*4ee2sY901kdx#1eQ9d2lm;JUZHu9bDL3aU8Wyw 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 z
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 z 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 V6Eg=2E-JO8RvA2&N+9ARECN!hOu@&1+!;y!Tvb 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
lgfPK zlkHxA@)z&Rl+)gMslC0f)M`)XG^2ZT+J09_+ARklZL4irD#y|@<&|+`(mDMI0Z?~` zOVIuo|3x#AiPg@fJ=AU_$C}3DDs?dnwhoRNr8|fGqs@hP*M5cU)XV_wP|pJ7s5Frk zilgD7GDfIC@+&a5UF-*lviyD97Wr6h|9J^*pFNbek)Af;bWa!IH_!4`wD(;L*_+*R z*>kY@pu4uo=1ghIa-f^K+p3yu=I$*cjVNK2&e!%v^Q%3oIxktLoG0TcIx7arO-hMu zp?Zf*rJ=|s>K;pL_2Z;T#%yVsX@GR3`M30kWw7kI?YHccBU@hSx+C{{$`o7u&5FCB zv&wA1e$@}~Q8gESMl%BSTRRg=(c=j>4gHC8Ont~pE%DSNw!gG$2ZvGS&SExt1I(3y zn=D|sAG=qKq$van<6nXY-A;waS5Bo+pf@)Dbt+7pjY zt0bICD_dT$jd9QKu!P)TPxVA57CFG1HbO&PkojKatYJsZEB( zGm=rvyrg<+@5EuGdxGcqBtaj{C_VxS;W?mNI7wh^f(W2vv!g0jby&rG5PHE_7wke$ z4m_q-`zBIGdDoMLZV~CQYc{Fc2`4>r{vdXCsfY#cYoy*DJcZ$Hq;By(q963mVaA>d zEQaR{`>v~hJj4l4*lquwFxA$BbJ;qN6R_lQI$AUdJIz-UNU?2?*`#4BOcEx{e2hNS zJcxSKj3RF_Z-~n`SKz*wvN6e~Cgc#K5I)C{2Ro(LL2NnhrD-6;PiCoAyDP6@VJ(V-`1Qh1?} z7CEk`M&os0fLj9uzEZ1!!&NsxN<|m&NqNlvCi?&Z%br3d(#x<`=?M65sQ}R~?SW*= z=A!1wCZR2|ei)&=BUY`Lg8Qv}h##Wr9=BH&C3aMW$a|C^+HM7(u~I&sH9@v7euR|A z87t|+Jt~ItAmXdM+wFSZr1l>?Zaa=A6G=FqMN1O^?PB)j_JOQ*;*X4ciJkUZf}(bk zCXs#8)kL+-OsI~fJ!=$5JXiGqCs+T(iL|5eDm|azG@1zmEeGPB**HYBQ$+0Kt|oQ! zUL_;^P|DfBbFw;kBerit5yyuE_)p=U*rAbZRJSMz{ssVtECEFTC`fT+JQNn{2HO+( z4U_xvaCBfO{7)d}tPi^3D?|MeobV6CvG97NA>0==JYqlrqO;Jh=xMYNa20(Gco^Lm z^ck%NQ7|*X!!a+wAk1~}ByYCGrR>~76KDa1$FrT zK@J`t{Do}^RHI#i$;ey5D=;JnV$w4D_Oo2CdapKpv`9ka_B}(0A$v*aA%_#87Q_*xxj)Bo3&K^;R z(-2wg@`f+DUWY!pRt1BuzJV@oqJOcQ>RaaS=N;%i>=C$qZj0-g`=;xY2S8;6R$+bw zU*WcezYs=8Ul5alN6BrVk<{)GE3E^x8>0z2li3|MhIInQWd8>{#x91b*+S^p_=`|{ z!Y*ha;TcrM$$~B6T46W1x8UcvJrLcw2NCx<