1 // Copyright 2020 Espressif Systems (Shanghai) PTE LTD
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #pragma once
16 
17 #include "esp_err.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 /**
24  * @brief This helper function creates and starts a task which wraps `tud_task()`.
25  *
26  * The wrapper function basically wraps tud_task and some log.
27  * Default parameters: stack size and priority as configured, argument = NULL, not pinned to any core.
28  * If you have more requirements for this task, you can create your own task which calls tud_task as the last step.
29  *
30  * @retval ESP_OK run tinyusb main task successfully
31  * @retval ESP_FAIL run tinyusb main task failed of internal error
32  * @retval ESP_ERR_INVALID_STATE tinyusb main task has been created before
33  */
34 esp_err_t tusb_run_task(void);
35 
36 /**
37  * @brief This helper function stops and destroys the task created by `tusb_run_task()`
38  *
39  * @retval ESP_OK stop and destory tinyusb main task successfully
40  * @retval ESP_ERR_INVALID_STATE tinyusb main task hasn't been created yet
41  */
42 esp_err_t tusb_stop_task(void);
43 
44 #ifdef __cplusplus
45 }
46 #endif
47