2d363ce6442ccc3153caf31a4dd79836cd4be982
[platform/core/connectivity/bluetooth-frwk.git] / bt-oal / include / oal-event.h
1 /*
2  * Open Adaptation Layer (OAL)
3  *
4  * Copyright (c) 2014-2015 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *              http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 #include <stdint.h>
21
22 #ifndef _OAL_EVENT_H_
23 #define _OAL_EVENT_H_
24
25 #include <glib.h>
26 #include <sys/types.h>
27
28 #include <oal-manager.h>
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34 #define FOREACH_EVENT(EVENT) \
35         EVENT(OAL_EVENT_ADAPTER_ENABLED)        \
36         EVENT(OAL_EVENT_ADAPTER_DISABLED)       \
37         EVENT(OAL_EVENT_ADAPTER_HARDWARE_ERROR) \
38         EVENT(OAL_EVENT_ADAPTER_PROPERTY_ADDRESS)                       /* bt_address_t */      \
39         EVENT(OAL_EVENT_ADAPTER_PROPERTY_NAME)                          /* char string */\
40         EVENT(OAL_EVENT_ADAPTER_PROPERTY_VERSION)                       /* char string */\
41         EVENT(OAL_EVENT_ADAPTER_PROPERTY_SERVICES)                      /* event_adapter_services_t */\
42         EVENT(OAL_EVENT_ADAPTER_MODE_NON_CONNECTABLE)   \
43         EVENT(OAL_EVENT_ADAPTER_MODE_CONNECTABLE)       \
44         EVENT(OAL_EVENT_ADAPTER_MODE_DISCOVERABLE)      \
45         EVENT(OAL_EVENT_ADAPTER_MODE_DISCOVERABLE_TIMEOUT)      /* uint32_t */\
46         EVENT(OAL_EVENT_ADAPTER_BONDED_DEVICE_LIST)             /* event_device_list_t */\
47         EVENT(OAL_EVENT_ADAPTER_INQUIRY_STARTED)        \
48         EVENT(OAL_EVENT_ADAPTER_INQUIRY_RESULT_BREDR_ONLY)      /* event_dev_found_t */\
49         EVENT(OAL_EVENT_ADAPTER_INQUIRY_RESULT_BLE)             /* event_ble_dev_found_t */\
50         EVENT(OAL_EVENT_ADAPTER_INQUIRY_FINISHED)       \
51         EVENT(OAL_EVENT_DEVICE_PROPERTIES)                                      /* remote_device_t */\
52         EVENT(OAL_EVENT_DEVICE_NAME)                                            /* remote_device_t */\
53         EVENT(OAL_EVENT_DEVICE_VIDPID)                                          /* remote_device_t */\
54         EVENT(OAL_EVENT_DEVICE_SERVICES)                                        /* event_dev_services_t */\
55         EVENT(OAL_EVENT_DEVICE_PIN_REQUEST)                             /* remote_device_t */\
56         EVENT(OAL_EVENT_DEVICE_PASSKEY_ENTRY_REQUEST)           /* remote_device_t */\
57         EVENT(OAL_EVENT_DEVICE_PASSKEY_CONFIRMATION_REQUEST)/* event_dev_passkey_t */\
58         EVENT(OAL_EVENT_DEVICE_PASSKEY_DISPLAY)                 /* event_dev_passkey_t */\
59         EVENT(OAL_EVENT_DEVICE_SSP_CONSENT_REQUEST)             /* remote_device_t */\
60         EVENT(OAL_EVENT_DEVICE_BONDING_SUCCESS)                 /* bt_address_t */\
61         EVENT(OAL_EVENT_DEVICE_BONDING_REMOVED)                 /* bt_address_t */\
62         EVENT(OAL_EVENT_DEVICE_BONDING_FAILED)                          /* event_dev_bond_failed_t */\
63         EVENT(OAL_EVENT_DEVICE_AUTHORIZE_REQUEST)                       /* event_dev_authorize_req_t */\
64         EVENT(OAL_EVENT_SOCKET_AUTHORIZE_REQUEST)                       /* event_socket_authorize_req_t */\
65         EVENT(OAL_EVENT_DEVICE_ACL_CONNECTED)                           /* bt_address_t */\
66         EVENT(OAL_EVENT_DEVICE_ACL_DISCONNECTED)                        /* bt_address_t */\
67         EVENT(OAL_EVENT_DEVICE_TRUSTED)                 /* Remote Device is Trusted */\
68         EVENT(OAL_EVENT_DEVICE_UNTRUSTED)                       /* Remote Device is UnTrusted */\
69         EVENT(OAL_EVENT_OAL_INITIALISED_SUCCESS)                /* OAL Initialisation event */  \
70         EVENT(OAL_EVENT_OAL_INITIALISED_FAILED)                 /* OAL Initialisation event */  \
71         EVENT(OAL_EVENT_HID_CONNECTED)                                          /* event_hid_conn_t */\
72         EVENT(OAL_EVENT_HID_DISCONNECTED)                                       /* event_hid_conn_t */\
73         EVENT(OAL_EVENT_SOCKET_OUTGOING_CONNECTED)                 /* RFCOMM */  \
74         EVENT(OAL_EVENT_SOCKET_DISCONNECTED)            /* RFCOMM */  \
75         EVENT(OAL_EVENT_AUDIO_CONNECTING)                   /* bt_address_t */ \
76         EVENT(OAL_EVENT_AUDIO_DISCONNECTING)                /* bt_address_t*/ \
77         EVENT(OAL_EVENT_AUDIO_CONNECTED)                                        /* bt_address_t*/ \
78         EVENT(OAL_EVENT_AUDIO_DISCONNECTED)                             /* bt_address_t*/  \
79         EVENT(OAL_EVENT_AUDIO_STOPPED)                                          /* bt_address_t*/  \
80         EVENT(OAL_EVENT_AUDIO_STARTED)                                          /* bt_address_t*/  \
81         EVENT(OAL_EVENT_HFP_DISCONNECTED)                /* bt_address_t*/ \
82         EVENT(OAL_EVENT_HFP_CONNECTING)                /* bt_address_t*/ \
83         EVENT(OAL_EVENT_HFP_CONNECTED)                /* bt_address_t*/ \
84         EVENT(OAL_EVENT_HFP_DISCONNECTING)                /* bt_address_t*/ \
85         EVENT(OAL_EVENT_HFP_AUDIO_DISCONNECTED)                /* bt_address_t*/ \
86         EVENT(OAL_EVENT_HFP_AUDIO_CONNECTING)                /* bt_address_t*/ \
87         EVENT(OAL_EVENT_HFP_AUDIO_CONNECTED)                /* bt_address_t*/ \
88         EVENT(OAL_EVENT_HFP_AUDIO_DISCONNECTING)                /* bt_address_t*/ \
89         EVENT(OAL_EVENT_END)                                /* End of event*/\
90
91
92 #define GENERATE_ENUM(ENUM) ENUM,
93 #define GENERATE_STRING(STRING) #STRING,
94
95 typedef enum EVENT_ENUM {
96     FOREACH_EVENT(GENERATE_ENUM)
97 } oal_event_t;
98
99 #ifdef _OAL_EVENT_DISPATCHER_C_
100 const char *str_event[] = {
101     FOREACH_EVENT(GENERATE_STRING)
102 };
103 #else
104 extern const char *str_event[];
105 #endif
106
107 /*********Datastructures for Local Adapter events ******************/
108 typedef struct {
109         int num;
110         bt_address_t devices[0];
111 } event_device_list_t;
112
113 typedef struct {
114         remote_device_t device_info;
115         uint8_t adv_data[62];
116         int adv_len;
117 } event_ble_dev_found_t;
118
119 typedef struct {
120         remote_device_t device_info;
121 } event_dev_found_t;
122
123 typedef struct {
124         int num;
125         service_uuid_t service_list[0];
126 } event_adapter_services_t;
127
128 typedef struct {
129         remote_device_t device_info;
130         uint8_t adv_data[62];
131         int adv_len;
132 } event_dev_properties_t;
133
134 /*********Datastructures for Remote Device events ******************/
135 typedef struct {
136         bt_address_t address;
137         int num;
138         service_uuid_t service_list[0];
139 } event_dev_services_t;
140
141 typedef struct {
142         remote_device_t device_info;
143         uint32_t pass_key;
144 } event_dev_passkey_t;
145
146 typedef struct {
147         bt_address_t address;
148         oal_service_t service_id;
149 } event_dev_authorize_req_t;
150
151 #ifdef TIZEN_BT_HAL
152 typedef struct {
153         bt_address_t address;
154         oal_uuid_t uuid;
155 } event_socket_authorize_req_t;
156 #endif
157
158 typedef struct {
159         bt_address_t address;
160         oal_status_t status;
161 } event_dev_trust_t;
162
163 typedef struct {
164         bt_address_t address;
165         oal_status_t status;
166 } event_dev_conn_status_t;
167
168 typedef event_dev_conn_status_t event_dev_bond_failed_t;
169
170 /*********Datastructures for HID callback******************/
171 /* HID :: connection state callback response data */
172 typedef struct {
173         bt_address_t address;
174         oal_status_t status;
175 } event_hid_conn_t;
176
177 /********* Datastructures for Socket event ******************/
178 /* SOCKET:: socket outgoing client connection event data */
179 typedef struct {
180         int fd;                 /**< FD of Outgoing client */
181         int sock_type;          /**< Type of socket */
182         bt_address_t address;   /**< Address of remote server */
183 } event_socket_client_conn_t;
184
185 #ifdef __cplusplus
186 }
187 #endif /* __cplusplus */
188 #endif /*_OAL_EVENT_H_*/