1 /*
2  * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef __BTC_BT_MAIN_H__
8 #define __BTC_BT_MAIN_H__
9 
10 #include "osi/future.h"
11 #include "stack/bt_types.h"
12 #include "bta/bta_api.h"
13 #include "btc/btc_main.h"
14 #include "btc/btc_task.h"
15 
16 typedef enum {
17     BTC_MAIN_ACT_INIT = 0,
18     BTC_MAIN_ACT_DEINIT,
19     BTC_MAIN_ACT_ENABLE,
20     BTC_MAIN_ACT_DISABLE,
21 } btc_main_act_t;
22 
23 typedef enum {
24     BTC_MAIN_INIT_FUTURE = 0,
25     BTC_MAIN_DEINIT_FUTURE,
26     BTC_MAIN_ENABLE_FUTURE,
27     BTC_MAIN_DISABLE_FUTURE,
28     BTC_MAIN_FUTURE_NUM,
29 } btc_main_future_type_t;
30 
31 future_t **btc_main_get_future_p(btc_main_future_type_t type);
32 
33 #if 0
34 typedef union {
35     struct btc_main_init_args {
36         future_t *future;
37     } init;
38     struct btc_main_deinit_args {
39         future_t *future;
40     } deinit;
41     struct btc_main_init_args {
42         future_t *future;
43     } enable;
44     struct btc_main_init_args {
45         future_t *future;
46     } disable;
47 } btc_main_args_t;
48 
49 bt_status_t btc_enable_bluetooth(future_t *future);
50 void btc_disable_bluetooth(future_t *future);
51 bt_status_t btc_init_bluetooth(future_t *future);
52 void btc_deinit_bluetooth(future_t *future);
53 #endif
54 
55 void btc_main_call_handler(btc_msg_t *msg);
56 #endif /* __BTC_BT_MAIN_H__ */
57