1 /*
2  * SPDX-FileCopyrightText: 2015-2024 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 #define BTC_BLE_STATUS_IDLE 0
32 typedef enum {
33     BTC_BLE_STATUS_ADV = 0,     // Advertising exist
34     BTC_BLE_STATUS_EXT_ADV,     // Extended advertising exist
35     BTC_BLE_STATUS_SCAN,        // Scanning exist
36     BTC_BLE_STATUS_CONN,        // Connection exist
37     BTC_BLE_STATUS_KEYS,        // Device keys record exist
38     BTC_BLE_STATUS_BOND,        // Bond info exist
39     BTC_BLE_STATUS_GATTC_CACHE, // GATTC cache exist
40     BTC_BLE_STATUS_GATTC_APP,   // GATTC application exist
41     BTC_BLE_STATUS_GATTS_SRVC,  // GATTS service exist
42     BTC_BLE_STATUS_PRIVACY,     // Privacy enabled
43     BTC_BLE_STATUS_ADDR_RESOLVE_DISABLE,// Address resolution disable status
44 } tBTC_BLE_STATUS;
45 
46 future_t **btc_main_get_future_p(btc_main_future_type_t type);
47 
48 #if 0
49 typedef union {
50     struct btc_main_init_args {
51         future_t *future;
52     } init;
53     struct btc_main_deinit_args {
54         future_t *future;
55     } deinit;
56     struct btc_main_init_args {
57         future_t *future;
58     } enable;
59     struct btc_main_init_args {
60         future_t *future;
61     } disable;
62 } btc_main_args_t;
63 
64 bt_status_t btc_enable_bluetooth(future_t *future);
65 void btc_disable_bluetooth(future_t *future);
66 bt_status_t btc_init_bluetooth(future_t *future);
67 void btc_deinit_bluetooth(future_t *future);
68 #endif
69 
70 void btc_main_call_handler(btc_msg_t *msg);
71 #endif /* __BTC_BT_MAIN_H__ */
72