1 
2 
3 #pragma once
4 
5 #include <list>
6 #include <map>
7 #include <string>
8 
9 #include "include/hardware/bluetooth.h"
10 
11 using acl_state_changed_params_t = struct {
12   bt_status_t status;
13   RawAddress* remote_bd_addr;
14   bt_acl_state_t state;
15   bt_hci_error_code_t hci_reason;
16 };
17 
18 using callback_params_t = union {
19   acl_state_changed_params_t acl_state_changed;
20 };
21 
22 using interface_data_t = struct {
23   std::string name;
24   callback_params_t params;
25 };
26 
27 using callback_function_t = void (*)(interface_data_t);
28 using interface_callback_t = struct {
29   std::string name;
30   callback_function_t function;
31 };
32 
33 void headless_add_callback(const std::string interface_name,
34                            callback_function_t function);
35 void headless_remove_callback(const std::string interface_name,
36                               callback_function_t function);
37