Upgrade bluez5_37 :Merge the code from private
[platform/upstream/bluez.git] / attrib / gatt-service.h
1 /*
2  *
3  *  BlueZ - Bluetooth protocol stack for Linux
4  *
5  *  Copyright (C) 2011  Nokia Corporation
6  *  Copyright (C) 2011  Marcel Holtmann <marcel@holtmann.org>
7  *
8  *
9  *  This program is free software; you can redistribute it and/or modify
10  *  it under the terms of the GNU General Public License as published by
11  *  the Free Software Foundation; either version 2 of the License, or
12  *  (at your option) any later version.
13  *
14  *  This program is distributed in the hope that it will be useful,
15  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *  GNU General Public License for more details.
18  *
19  *  You should have received a copy of the GNU General Public License
20  *  along with this program; if not, write to the Free Software
21  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
22  *
23  */
24
25 typedef enum {
26         GATT_OPT_INVALID = 0,
27
28         /* bt_uuid_t* value */
29         GATT_OPT_CHR_UUID,
30
31         /* a uint16 value */
32         GATT_OPT_CHR_UUID16,
33
34 #ifdef __TIZEN_PATCH__
35         /* bt_uuid_t* value */
36         GATT_OPT_DESC_UUID,
37
38         /* a uint16 value */
39         GATT_OPT_DESC_UUID16,
40 #endif
41
42         GATT_OPT_CHR_PROPS,
43         GATT_OPT_CHR_VALUE_CB,
44 #ifdef __TIZEN_PATCH__
45         GATT_OPT_DESC_PROPS,
46         GATT_OPT_DESC_VALUE_CB,
47 #endif
48         GATT_OPT_CHR_AUTHENTICATION,
49         GATT_OPT_CHR_AUTHORIZATION,
50
51         /* Get attribute handle for characteristic value */
52         GATT_OPT_CHR_VALUE_GET_HANDLE,
53
54         /* Get handle for ccc attribute */
55         GATT_OPT_CCC_GET_HANDLE,
56
57         /* arguments for authentication/authorization */
58         GATT_CHR_VALUE_READ,
59         GATT_CHR_VALUE_WRITE,
60         GATT_CHR_VALUE_BOTH,
61 } gatt_option;
62
63 typedef enum {
64         ATTRIB_READ,
65         ATTRIB_WRITE,
66 } attrib_event_t;
67
68 gboolean gatt_service_add(struct btd_adapter *adapter, uint16_t uuid,
69                                         bt_uuid_t *svc_uuid, gatt_option opt1, ...);
70 #ifdef __TIZEN_PATCH__
71 bool gatt_add_descriptor(struct btd_adapter *adapter, uint16_t *handle,
72                                         uint16_t start_handle, gatt_option opt1, ...);
73 bool gatt_add_characteristic(struct btd_adapter *adapter,
74                                 uint16_t *handle, uint16_t start_handle,
75                                  gatt_option opt1, ...);
76 uint16_t gatt_prim_service_add(struct btd_adapter *adapter, uint16_t uuid,
77                                 bt_uuid_t *svc_uuid, unsigned int size,
78                                 uint16_t *start_handle);
79 void attrib_remove_service(struct btd_adapter *adapter, uint16_t start_handle,
80                                                         uint16_t end_handle);
81 bool gatt_update_db(struct btd_adapter *adapter, const bt_uuid_t *uuid,
82                                         uint8_t *value, size_t len);
83 bool gatt_send_noty_ind(struct btd_adapter *adapter, const bt_uuid_t *uuid,
84                                         uint8_t *value, size_t len);
85 bool gatt_send_service_changed_ind(struct btd_adapter *adapter, bt_uuid_t *uuid,
86                     uint16_t start_handle, uint16_t end_handle);
87 #endif