Upgrade bluez5_37 :Merge the code from private
[platform/upstream/bluez.git] / android / bluetooth.h
1 /*
2  *
3  *  BlueZ - Bluetooth protocol stack for Linux
4  *
5  *  Copyright (C) 2013-2014  Intel Corporation. All rights reserved.
6  *
7  *
8  *  This library is free software; you can redistribute it and/or
9  *  modify it under the terms of the GNU Lesser General Public
10  *  License as published by the Free Software Foundation; either
11  *  version 2.1 of the License, or (at your option) any later version.
12  *
13  *  This library is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  *  Lesser General Public License for more details.
17  *
18  *  You should have received a copy of the GNU Lesser General Public
19  *  License along with this library; if not, write to the Free Software
20  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21  *
22  */
23
24 typedef void (*bt_bluetooth_ready)(int err, const bdaddr_t *addr);
25 bool bt_bluetooth_start(int index, bool mgmt_dbg, bt_bluetooth_ready cb);
26
27 typedef void (*bt_bluetooth_stopped)(void);
28 bool bt_bluetooth_stop(bt_bluetooth_stopped cb);
29
30 void bt_bluetooth_cleanup(void);
31
32 bool bt_bluetooth_register(struct ipc *ipc, uint8_t mode);
33 void bt_bluetooth_unregister(void);
34
35 int bt_adapter_add_record(sdp_record_t *rec, uint8_t svc_hint);
36 void bt_adapter_remove_record(uint32_t handle);
37
38 typedef void (*bt_le_device_found)(const bdaddr_t *addr, int rssi,
39                                         uint16_t eir_len, const void *eir,
40                                         bool connectable, bool bonded);
41 bool bt_le_register(bt_le_device_found cb);
42 void bt_le_unregister(void);
43
44 bool bt_le_discovery_start(void);
45
46 typedef void (*bt_le_discovery_stopped)(void);
47 bool bt_le_discovery_stop(bt_le_discovery_stopped cb);
48
49 typedef void (*bt_le_set_advertising_done)(uint8_t status, void *user_data);
50 bool bt_le_set_advertising(bool advertising, bt_le_set_advertising_done cb,
51                                                         void *user_data);
52
53 uint8_t bt_get_device_android_type(const bdaddr_t *addr);
54 bool bt_is_device_le(const bdaddr_t *addr);
55 uint8_t bt_device_last_seen_bearer(const bdaddr_t *bdaddr);
56
57 const char *bt_get_adapter_name(void);
58 bool bt_device_is_bonded(const bdaddr_t *bdaddr);
59 bool bt_device_set_uuids(const bdaddr_t *bdaddr, GSList *uuids);
60
61 typedef void (*bt_read_device_rssi_done)(uint8_t status, const bdaddr_t *addr,
62                                                 int8_t rssi, void *user_data);
63 bool bt_read_device_rssi(const bdaddr_t *addr, bt_read_device_rssi_done cb,
64                                                         void *user_data);
65
66 bool bt_get_csrk(const bdaddr_t *addr, bool local, uint8_t key[16],
67                                 uint32_t *sign_cnt, bool *authenticated);
68
69 void bt_update_sign_counter(const bdaddr_t *addr, bool local, uint32_t val);
70
71 void bt_store_gatt_ccc(const bdaddr_t *addr, uint16_t value);
72
73 uint16_t bt_get_gatt_ccc(const bdaddr_t *addr);
74
75 const bdaddr_t *bt_get_id_addr(const bdaddr_t *addr, uint8_t *type);
76
77 bool bt_kernel_conn_control(void);
78
79 bool bt_auto_connect_add(const bdaddr_t *addr);
80
81 void bt_auto_connect_remove(const bdaddr_t *addr);
82
83 typedef void (*bt_unpaired_device_cb)(const bdaddr_t *addr);
84 bool bt_unpaired_register(bt_unpaired_device_cb cb);
85 void bt_unpaired_unregister(bt_unpaired_device_cb cb);
86
87 typedef void (*bt_paired_device_cb)(const bdaddr_t *addr);
88 bool bt_paired_register(bt_paired_device_cb cb);
89 void bt_paired_unregister(bt_paired_device_cb cb);
90 bool bt_is_pairing(const bdaddr_t *addr);