2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #ifndef __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
19 #define __TIZEN_NETWORK_BLUETOOTH_TYPE_H__
24 #endif /* __cplusplus */
27 * @file bluetooth_type.h
28 * @brief API to control the Bluetooth adapter, devices and communications.
29 * @ingroup CAPI_NETWORK_BLUETOOTH_TYPE_MODULE
34 * @ingroup CAPI_NETWORK_BLUETOOTH_MODULE
35 * @brief Enumerations of Bluetooth error codes.
39 BT_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful*/
40 BT_ERROR_CANCELLED = TIZEN_ERROR_CANCELED, /**< Operation cancelled */
41 BT_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
42 BT_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
43 BT_ERROR_RESOURCE_BUSY = TIZEN_ERROR_RESOURCE_BUSY, /**< Device or resource busy */
44 BT_ERROR_TIMED_OUT = TIZEN_ERROR_TIMED_OUT, /**< Timeout error */
45 BT_ERROR_NOW_IN_PROGRESS = TIZEN_ERROR_NOW_IN_PROGRESS, /**< Operation now in progress */
46 BT_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED,
47 BT_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
48 BT_ERROR_QUOTA_EXCEEDED = TIZEN_ERROR_QUOTA_EXCEEDED, /**< Quota exceeded */
49 BT_ERROR_NOT_INITIALIZED = TIZEN_ERROR_BLUETOOTH|0x0101, /**< Local adapter not initialized */
50 BT_ERROR_NOT_ENABLED = TIZEN_ERROR_BLUETOOTH|0x0102, /**< Local adapter not enabled */
51 BT_ERROR_ALREADY_DONE = TIZEN_ERROR_BLUETOOTH|0x0103, /**< Operation already done */
52 BT_ERROR_OPERATION_FAILED = TIZEN_ERROR_BLUETOOTH|0x0104, /**< Operation failed */
53 BT_ERROR_NOT_IN_PROGRESS = TIZEN_ERROR_BLUETOOTH|0x0105, /**< Operation not in progress */
54 BT_ERROR_REMOTE_DEVICE_NOT_BONDED = TIZEN_ERROR_BLUETOOTH|0x0106, /**< Remote device not bonded */
55 BT_ERROR_AUTH_REJECTED = TIZEN_ERROR_BLUETOOTH|0x0107, /**< Authentication rejected */
56 BT_ERROR_AUTH_FAILED = TIZEN_ERROR_BLUETOOTH|0x0108, /**< Authentication failed */
57 BT_ERROR_REMOTE_DEVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x0109, /**< Remote device not found */
58 BT_ERROR_SERVICE_SEARCH_FAILED = TIZEN_ERROR_BLUETOOTH|0x010A, /**< Service search failed */
59 BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED = TIZEN_ERROR_BLUETOOTH|0x010B, /**< Remote device is not connected */
60 BT_ERROR_AGAIN = TIZEN_ERROR_BLUETOOTH|0x010C, /**< Resource temporarily unavailable */
61 BT_ERROR_SERVICE_NOT_FOUND = TIZEN_ERROR_BLUETOOTH|0x010D, /**< Service Not Found */
65 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
66 * @brief Enumerations of the Bluetooth adapter state.
70 BT_ADAPTER_DISABLED = 0x00, /**< Bluetooth adapter is disabled */
71 BT_ADAPTER_ENABLED, /**< Bluetooth adapter is enabled */
75 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
76 * @brief Enumerations of the Bluetooth adapter le state.
80 BT_ADAPTER_LE_DISABLED = 0x00, /**< Bluetooth le is disabled */
81 BT_ADAPTER_LE_ENABLED, /**< Bluetooth le is enabled */
82 } bt_adapter_le_state_e;
85 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
86 * @brief Enumerations of the Bluetooth visibility mode.
90 BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE = 0x00, /**< Other devices cannot find your device via discovery */
91 BT_ADAPTER_VISIBILITY_MODE_GENERAL_DISCOVERABLE, /**< Discoverable mode */
92 BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE, /**< Discoverable mode with time limit. After specific period,
93 it is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.*/
94 } bt_adapter_visibility_mode_e;
97 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
98 * @brief Enumerations of the discovery state of Bluetooth device.
103 BT_ADAPTER_DEVICE_DISCOVERY_STARTED, /**< Device discovery is started */
104 BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, /**< Device discovery is finished */
105 BT_ADAPTER_DEVICE_DISCOVERY_FOUND, /**< The remote Bluetooth device is found */
106 } bt_adapter_device_discovery_state_e;
109 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
110 * @brief Enumerations of the discovery state of Bluetooth LE device.
115 BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED, /**< LE device discovery is started */
116 BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, /**< LE device discovery is finished */
117 BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND, /**< The remote Bluetooth LE device is found */
118 } bt_adapter_le_device_discovery_state_e;
121 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
122 * @brief Enumerations of the Bluetooth advertising state.
125 BT_ADAPTER_LE_ADVERTISING_STOPPED = 0x00, /**< Bluetooth advertising is stopped */
126 BT_ADAPTER_LE_ADVERTISING_STARTED, /**< Bluetooth advertising is started */
127 } bt_adapter_le_advertising_state_e;
131 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
132 * @brief Enumerations of the Bluetooth advertising filter policy.
135 BT_ADAPTER_LE_ADVERTISING_FILTER_DEFAULT = 0x00, /**< White list is not in use */
136 BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_WL = 0x01, /**< Allow the scan
137 request that in the White list */
138 BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_CONN_WL = 0x02, /**< Allow the connectoin
139 request that in the White list */
140 BT_ADAPTER_LE_ADVERTISING_FILTER_ALLOW_SCAN_CONN_WL = 0x03, /**< Allow the
141 scan and connectoin request that in the White list */
142 } bt_adapter_le_advertising_filter_policy_e;
145 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
146 * @brief Enumerations of the Bluetooth advertising type.
149 BT_ADAPTER_LE_ADVERTISING_CONNECTABLE = 0x00, /**< Connectable undirected advertising (ADV_IND) */
150 BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_HIGH = 0x01, /**< Connectable high duty cycle directed advertising (ADV_DIRECT_IND) */
151 BT_ADAPTER_LE_ADVERTISING_SCANNABLE = 0x02, /**< Scannable undirected advertising (ADV_SCAN_IND) */
152 BT_ADAPTER_LE_ADVERTISING_NON_CONNECTABLE = 0x03, /**< Non connectable undirected advertising (ADV_NONCOND_IND) */
153 BT_ADAPTER_LE_ADVERTISING_CONNECTABLE_DIRECT_LOW = 0x04, /**< Connectable low duty cycle directed advertising (ADV_DIRECT_IND) */
154 } bt_adapter_le_advertising_type_e;
157 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
158 * @brief Enumerations of the Bluetooth LE packet type.
161 BT_ADAPTER_LE_PACKET_ADVERTISING, /**< Advertising packet */
162 BT_ADAPTER_LE_PACKET_SCAN_RESPONSE, /**< Sacn response packet */
163 } bt_adapter_le_packet_type_e;
166 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
167 * @brief Enumerations of the Bluetooth LE data type
168 * that can be included in LE packets.
171 BT_ADAPTER_LE_PACKET_DATA_COMP_LIST_16_BIT_SERVICE_CLASS_UUIDS = 0x03, /**< 16 bit UUID */
172 BT_ADAPTER_LE_PACKET_DATA_MANUFACTURER_SPECIFIC_DATA = 0xff, /**< Manufacturer data */
173 } bt_adapter_le_packet_data_type_e;
176 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
177 * @brief Enumerations of device disconnect reason.
181 BT_DEVICE_DISCONNECT_REASON_UNKNOWN, /**< Disconnected by unknown reason */
182 BT_DEVICE_DISCONNECT_REASON_TIMEOUT, /**< Disconnected by timeout */
183 BT_DEVICE_DISCONNECT_REASON_LOCAL_HOST, /**< Disconnected by local host */
184 BT_DEVICE_DISCONNECT_REASON_REMOTE, /**< Disconnected by remote */
185 } bt_device_disconnect_reason_e;
188 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
189 * @brief Enumerations of connection link type.
193 BT_DEVICE_CONNECTION_LINK_BREDR, /**< BR/EDR link */
194 BT_DEVICE_CONNECTION_LINK_LE, /**< LE link */
195 BT_DEVICE_CONNECTION_LINK_DEFAULT = 0xFF, /**< The connection type defualt */
196 } bt_device_connection_link_type_e;
199 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
200 * @brief Enumerations of device authorization state.
204 BT_DEVICE_AUTHORIZED, /**< The remote Bluetooth device is authorized */
205 BT_DEVICE_UNAUTHORIZED, /**< The remote Bluetooth device is unauthorized */
206 } bt_device_authorization_e;
209 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
210 * @brief Enumerations of Bluetooth profile.
214 BT_PROFILE_RFCOMM = 0x01, /**< RFCOMM Profile */
215 BT_PROFILE_A2DP = 0x02, /**< Advanced Audio Distribution Profile */
216 BT_PROFILE_HSP = 0x04, /**< Headset Profile */
217 BT_PROFILE_HID = 0x08, /**< Human Interface Device Profile */
218 BT_PROFILE_NAP = 0x10, /**< Network Access Point Profile */
219 BT_PROFILE_AG = 0x20, /**< Audio Gateway Profile */
220 BT_PROFILE_GATT = 0x40, /**< Generic Attribute Profile */
221 BT_PROFILE_NAP_SERVER = 0x80, /**< NAP server Profile */
225 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
226 * @brief Enumerations of device address type.
230 BT_DEVICE_PUBLIC_ADDRESS = 0x00, /**< Public address */
231 BT_DEVICE_RANDOM_ADDRESS, /**< Random address */
232 } bt_device_address_type_e;
235 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
236 * @brief Enumerations of service class.
239 BT_SC_NONE = 0, /**< No service class */
240 BT_SC_RES_SERVICE_MASK = 0x00000001, /**< RES service class */
241 BT_SC_SPP_SERVICE_MASK = 0x00000002, /**< SPP service class */
242 BT_SC_DUN_SERVICE_MASK = 0x00000004, /**< DUN service class */
243 BT_SC_FAX_SERVICE_MASK = 0x00000008, /**< FAX service class */
244 BT_SC_LAP_SERVICE_MASK = 0x00000010, /**< LAP service class */
245 BT_SC_HSP_SERVICE_MASK = 0x00000020, /**< HSP service class */
246 BT_SC_HFP_SERVICE_MASK = 0x00000040, /**< HFP service class */
247 BT_SC_OPP_SERVICE_MASK = 0x00000080, /**< OPP service class */
248 BT_SC_FTP_SERVICE_MASK = 0x00000100, /**< FTP service class */
249 BT_SC_CTP_SERVICE_MASK = 0x00000200, /**< CTP service class */
250 BT_SC_ICP_SERVICE_MASK = 0x00000400, /**< ICP service class */
251 BT_SC_SYNC_SERVICE_MASK = 0x00000800, /**< SYNC service class */
252 BT_SC_BPP_SERVICE_MASK = 0x00001000, /**< BPP service class */
253 BT_SC_BIP_SERVICE_MASK = 0x00002000, /**< BIP service class */
254 BT_SC_PANU_SERVICE_MASK = 0x00004000, /**< PANU service class */
255 BT_SC_NAP_SERVICE_MASK = 0x00008000, /**< NAP service class */
256 BT_SC_GN_SERVICE_MASK = 0x00010000, /**< GN service class */
257 BT_SC_SAP_SERVICE_MASK = 0x00020000, /**< SAP service class */
258 BT_SC_A2DP_SERVICE_MASK = 0x00040000, /**< A2DP service class */
259 BT_SC_AVRCP_SERVICE_MASK = 0x00080000, /**< AVRCP service class */
260 BT_SC_PBAP_SERVICE_MASK = 0x00100000, /**< PBAP service class */
261 BT_SC_HID_SERVICE_MASK = 0x00200000, /**< HID service class */
262 BT_SC_ALL_SERVICE_MASK = 0x00FFFFFF, /**< ALL service class */
263 BT_SC_MAX /**< MAX service class */
264 } bt_service_class_t;
267 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
268 * @brief Enumerations of major service class.
272 BT_MAJOR_SERVICE_CLASS_LIMITED_DISCOVERABLE_MODE = 0x002000, /**< Limited discoverable mode */
273 BT_MAJOR_SERVICE_CLASS_POSITIONING = 0x010000, /**< Positioning class */
274 BT_MAJOR_SERVICE_CLASS_NETWORKING = 0x020000, /**< Networking class */
275 BT_MAJOR_SERVICE_CLASS_RENDERING = 0x040000, /**< Rendering class */
276 BT_MAJOR_SERVICE_CLASS_CAPTURING = 0x080000, /**< Capturing class */
277 BT_MAJOR_SERVICE_CLASS_OBJECT_TRANSFER = 0x100000, /**< Object transferring class */
278 BT_MAJOR_SERVICE_CLASS_AUDIO = 0x200000, /**< Audio class*/
279 BT_MAJOR_SERVICE_CLASS_TELEPHONY = 0x400000, /**< Telephony class */
280 BT_MAJOR_SERVICE_CLASS_INFORMATION = 0x800000, /**< Information class */
281 } bt_major_service_class_e;
284 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
285 * @brief Enumerations of major device class.
289 BT_MAJOR_DEVICE_CLASS_MISC = 0x00, /**< Miscellaneous major device class*/
290 BT_MAJOR_DEVICE_CLASS_COMPUTER = 0x01, /**< Computer major device class */
291 BT_MAJOR_DEVICE_CLASS_PHONE = 0x02, /**< Phone major device class */
292 BT_MAJOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT = 0x03, /**< LAN/Network access point major device class */
293 BT_MAJOR_DEVICE_CLASS_AUDIO_VIDEO = 0x04, /**< Audio/Video major device class */
294 BT_MAJOR_DEVICE_CLASS_PERIPHERAL = 0x05, /**< Peripheral major device class */
295 BT_MAJOR_DEVICE_CLASS_IMAGING = 0x06, /**< Imaging major device class */
296 BT_MAJOR_DEVICE_CLASS_WEARABLE = 0x07, /**< Wearable device class */
297 BT_MAJOR_DEVICE_CLASS_TOY = 0x08, /**< Toy device class */
298 BT_MAJOR_DEVICE_CLASS_HEALTH = 0x09, /**< Health device class */
299 BT_MAJOR_DEVICE_CLASS_UNCATEGORIZED = 0x1F, /**< Uncategorized major device class */
300 } bt_major_device_class_e;
303 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
304 * @brief Enumerations of minor device class.
308 BT_MINOR_DEVICE_CLASS_COMPUTER_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of computer */
309 BT_MINOR_DEVICE_CLASS_COMPUTER_DESKTOP_WORKSTATION = 0x04, /**< Desktop workstation minor device class of computer */
310 BT_MINOR_DEVICE_CLASS_COMPUTER_SERVER_CLASS = 0x08, /**< Server minor device class of computer */
311 BT_MINOR_DEVICE_CLASS_COMPUTER_LAPTOP = 0x0C, /**< Laptop minor device class of computer */
312 BT_MINOR_DEVICE_CLASS_COMPUTER_HANDHELD_PC_OR_PDA = 0x10, /**< Handheld PC/PDA minor device class of computer */
313 BT_MINOR_DEVICE_CLASS_COMPUTER_PALM_SIZED_PC_OR_PDA = 0x14, /**< Palm sized PC/PDA minor device class of computer */
314 BT_MINOR_DEVICE_CLASS_COMPUTER_WEARABLE_COMPUTER = 0x18, /**< Wearable(watch sized) minor device class of computer */
316 BT_MINOR_DEVICE_CLASS_PHONE_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of phone */
317 BT_MINOR_DEVICE_CLASS_PHONE_CELLULAR = 0x04, /**< Cellular minor device class of phone */
318 BT_MINOR_DEVICE_CLASS_PHONE_CORDLESS = 0x08, /**< Cordless minor device class of phone */
319 BT_MINOR_DEVICE_CLASS_PHONE_SMART_PHONE = 0x0C, /**< Smart phone minor device class of phone */
320 BT_MINOR_DEVICE_CLASS_PHONE_WIRED_MODEM_OR_VOICE_GATEWAY = 0x10, /**< Wired modem or voice gateway minor device class of phone */
321 BT_MINOR_DEVICE_CLASS_PHONE_COMMON_ISDN_ACCESS = 0x14, /**< Common ISDN minor device class of phone */
323 BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_FULLY_AVAILABLE = 0x04, /**< Fully available minor device class of LAN/Network access point */
324 BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_1_TO_17_PERCENT_UTILIZED = 0x20, /**< 1-17% utilized minor device class of LAN/Network access point */
325 BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_17_TO_33_PERCENT_UTILIZED = 0x40, /**< 17-33% utilized minor device class of LAN/Network access point */
326 BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_33_TO_50_PERCENT_UTILIZED = 0x60, /**< 33-50% utilized minor device class of LAN/Network access point */
327 BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_50_to_67_PERCENT_UTILIZED = 0x80, /**< 50-67% utilized minor device class of LAN/Network access point */
328 BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_67_TO_83_PERCENT_UTILIZED = 0xA0, /**< 67-83% utilized minor device class of LAN/Network access point */
329 BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_83_TO_99_PERCENT_UTILIZED = 0xC0, /**< 83-99% utilized minor device class of LAN/Network access point */
330 BT_MINOR_DEVICE_CLASS_LAN_NETWORK_ACCESS_POINT_NO_SERVICE_AVAILABLE = 0xE0, /**< No service available minor device class of LAN/Network access point */
332 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of audio/video */
333 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_WEARABLE_HEADSET = 0x04, /**< Wearable headset minor device class of audio/video */
334 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HANDS_FREE = 0x08, /**< Hands-free minor device class of audio/video */
335 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_MICROPHONE = 0x10, /**< Microphone minor device class of audio/video */
336 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_LOUDSPEAKER = 0x14, /**< Loudspeaker minor device class of audio/video */
337 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HEADPHONES = 0x18, /**< Headphones minor device class of audio/video */
338 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_PORTABLE_AUDIO = 0x1C, /**< Portable audio minor device class of audio/video */
339 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAR_AUDIO = 0x20, /**< Car audio minor device class of audio/video */
340 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_SET_TOP_BOX = 0x24, /**< Set-top box minor device class of audio/video */
341 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_HIFI_AUDIO_DEVICE = 0x28, /**< Hifi audio minor device class of audio/video */
342 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VCR = 0x2C, /**< VCR minor device class of audio/video */
343 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CAMERA = 0x30, /**< Video camera minor device class of audio/video */
344 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_CAMCORDER = 0x34, /**< Camcorder minor device class of audio/video */
345 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_MONITOR = 0x38, /**< Video monitor minor device class of audio/video */
346 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_DISPLAY_LOUDSPEAKER = 0x3C, /**< Video display and loudspeaker minor device class of audio/video */
347 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_VIDEO_CONFERENCING = 0x40, /**< Video conferencing minor device class of audio/video */
348 BT_MINOR_DEVICE_CLASS_AUDIO_VIDEO_GAMING_TOY = 0x48, /**< Gaming/toy minor device class of audio/video */
350 BT_MINOR_DEVICE_CLASS_PERIPHERA_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of peripheral */
351 BT_MINOR_DEVICE_CLASS_PERIPHERAL_KEY_BOARD = 0x40, /**< Key board minor device class of peripheral */
352 BT_MINOR_DEVICE_CLASS_PERIPHERAL_POINTING_DEVICE = 0x80, /**< Pointing device minor device class of peripheral */
353 BT_MINOR_DEVICE_CLASS_PERIPHERAL_COMBO_KEYBOARD_POINTING_DEVICE = 0xC0, /**< Combo keyboard or pointing device minor device class of peripheral */
354 BT_MINOR_DEVICE_CLASS_PERIPHERAL_JOYSTICK = 0x04, /**< Joystick minor device class of peripheral */
355 BT_MINOR_DEVICE_CLASS_PERIPHERAL_GAME_PAD = 0x08, /**< Game pad minor device class of peripheral */
356 BT_MINOR_DEVICE_CLASS_PERIPHERAL_REMOTE_CONTROL = 0x0C, /**< Remote control minor device class of peripheral */
357 BT_MINOR_DEVICE_CLASS_PERIPHERAL_SENSING_DEVICE = 0x10, /**< Sensing device minor device class of peripheral */
358 BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITIZER_TABLET = 0x14, /**< Digitizer minor device class of peripheral */
359 BT_MINOR_DEVICE_CLASS_PERIPHERAL_CARD_READER = 0x18, /**< Card reader minor device class of peripheral */
360 BT_MINOR_DEVICE_CLASS_PERIPHERAL_DIGITAL_PEN = 0x1C, /**< Digital pen minor device class of peripheral */
361 BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_SCANNER = 0x20, /**< Handheld scanner minor device class of peripheral */
362 BT_MINOR_DEVICE_CLASS_PERIPHERAL_HANDHELD_GESTURAL_INPUT_DEVICE = 0x24, /**< Handheld gestural input device minor device class of peripheral */
364 BT_MINOR_DEVICE_CLASS_IMAGING_DISPLAY = 0x10, /**< Display minor device class of imaging */
365 BT_MINOR_DEVICE_CLASS_IMAGING_CAMERA = 0x20, /**< Camera minor device class of imaging */
366 BT_MINOR_DEVICE_CLASS_IMAGING_SCANNER = 0x40, /**< Scanner minor device class of imaging */
367 BT_MINOR_DEVICE_CLASS_IMAGING_PRINTER = 0x80, /**< Printer minor device class of imaging */
369 BT_MINOR_DEVICE_CLASS_WEARABLE_WRIST_WATCH = 0x04, /**< Wrist watch minor device class of wearable */
370 BT_MINOR_DEVICE_CLASS_WEARABLE_PAGER = 0x08, /**< Pager minor device class of wearable */
371 BT_MINOR_DEVICE_CLASS_WEARABLE_JACKET = 0x0C, /**< Jacket minor device class of wearable */
372 BT_MINOR_DEVICE_CLASS_WEARABLE_HELMET = 0x10, /**< Helmet minor device class of wearable */
373 BT_MINOR_DEVICE_CLASS_WEARABLE_GLASSES = 0x14, /**< Glasses minor device class of wearable */
375 BT_MINOR_DEVICE_CLASS_TOY_ROBOT = 0x04, /**< Robot minor device class of toy */
376 BT_MINOR_DEVICE_CLASS_TOY_VEHICLE = 0x08, /**< Vehicle minor device class of toy */
377 BT_MINOR_DEVICE_CLASS_TOY_DOLL_ACTION = 0x0C, /**< Doll/Action minor device class of toy */
378 BT_MINOR_DEVICE_CLASS_TOY_CONTROLLER = 0x10, /**< Controller minor device class of toy */
379 BT_MINOR_DEVICE_CLASS_TOY_GAME = 0x14, /**< Game minor device class of toy */
381 BT_MINOR_DEVICE_CLASS_HEALTH_UNCATEGORIZED = 0x00, /**< Uncategorized minor device class of health */
382 BT_MINOR_DEVICE_CLASS_HEALTH_BLOOD_PRESSURE_MONITOR = 0x04, /**< Blood pressure monitor minor device class of health */
383 BT_MINOR_DEVICE_CLASS_HEALTH_THERMOMETER = 0x08, /**< Thermometer minor device class of health */
384 BT_MINOR_DEVICE_CLASS_HEALTH_WEIGHING_SCALE = 0x0C, /**< Weighing scale minor device class of health */
385 BT_MINOR_DEVICE_CLASS_HEALTH_GLUCOSE_METER = 0x10, /**< Glucose minor device class of health */
386 BT_MINOR_DEVICE_CLASS_HEALTH_PULSE_OXIMETER = 0x14, /**< Pulse oximeter minor device class of health */
387 BT_MINOR_DEVICE_CLASS_HEALTH_HEART_PULSE_RATE_MONITOR = 0x18, /**< Heart/Pulse rate monitor minor device class of health */
388 BT_MINOR_DEVICE_CLASS_HEALTH_DATA_DISPLAY = 0x1C, /**< Health data display minor device class of health */
389 BT_MINOR_DEVICE_CLASS_HEALTH_STEP_COUNTER = 0x20, /**< Step counter minor device class of health */
390 BT_MINOR_DEVICE_CLASS_HEALTH_BODY_COMPOSITION_ANALYZER = 0x24, /**< Body composition analyzer minor device class of health */
391 BT_MINOR_DEVICE_CLASS_HEALTH_PEAK_FLOW_MONITOR = 0x28, /**< Peak flow monitor minor device class of health */
392 BT_MINOR_DEVICE_CLASS_HEALTH_MEDICATION_MONITOR = 0x2C, /**< Medication monitor minor device class of health */
393 BT_MINOR_DEVICE_CLASS_HEALTH_KNEE_PROSTHESIS = 0x30, /**< Knee prosthesis minor device class of health */
394 BT_MINOR_DEVICE_CLASS_HEALTH_ANKLE_PROSTHESIS = 0x34, /**< Ankle prosthesis minor device class of health */
395 } bt_minor_device_class_e;
398 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
399 * @brief Enumerations of gap appearance type.
403 BT_APPEARANCE_TYPE_UNKNOWN = 0x00, /**< Unknown appearance type */
404 BT_APPEARANCE_TYPE_GENERIC_PHONE = 0x40, /**< Generic Phone type - Generic category */
405 BT_APPEARANCE_TYPE_GENERIC_COMPUTER = 0x80, /**< Generic Computer type - Generic category */
406 BT_APPEARANCE_TYPE_GENERIC_WATCH = 0xC0, /**< Generic Watch type - Generic category */
407 } bt_appearance_type_e;
410 * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
411 * @brief Enumerations of connected Bluetooth device event role.
415 BT_SOCKET_UNKNOWN = 0x00, /**< Unknown role*/
416 BT_SOCKET_SERVER , /**< Server role*/
417 BT_SOCKET_CLIENT, /**< Client role*/
421 * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
422 * @brief Enumerations of Bluetooth socket connection state.
426 BT_SOCKET_CONNECTED, /**< RFCOMM is connected */
427 BT_SOCKET_DISCONNECTED, /**< RFCOMM is disconnected */
428 } bt_socket_connection_state_e;
431 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
432 * @brief Enumerations for the types of profiles related with audio
435 BT_AUDIO_PROFILE_TYPE_ALL = 0, /**< All supported profiles related with audio */
436 BT_AUDIO_PROFILE_TYPE_HSP_HFP, /**< HSP(Headset Profile) and HFP(Hands-Free Profile) */
437 BT_AUDIO_PROFILE_TYPE_A2DP, /**< A2DP(Advanced Audio Distribution Profile) */
438 BT_AUDIO_PROFILE_TYPE_AG, /**< AG(Audio Gateway) */
439 } bt_audio_profile_type_e;
443 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
444 * @brief Enumerations for the call handling event
447 BT_AG_CALL_HANDLING_EVENT_ANSWER = 0x00, /**< Request to answer an incoming call */
448 BT_AG_CALL_HANDLING_EVENT_RELEASE, /**< Request to release a call */
449 BT_AG_CALL_HANDLING_EVENT_REJECT, /**< Request to reject an incoming call */
450 } bt_ag_call_handling_event_e;
454 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
455 * @brief Enumerations for the multi call handling event
458 BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_HELD_CALLS = 0x00, /**< Request to release held calls */
459 BT_AG_MULTI_CALL_HANDLING_EVENT_RELEASE_ACTIVE_CALLS, /**< Request to release active calls */
460 BT_AG_MULTI_CALL_HANDLING_EVENT_ACTIVATE_HELD_CALL, /**< Request to put active calls into hold state and activate another (held or waiting) call */
461 BT_AG_MULTI_CALL_HANDLING_EVENT_MERGE_CALLS, /**< Request to add a held call to the conversation */
462 BT_AG_MULTI_CALL_HANDLING_EVENT_EXPLICIT_CALL_TRANSFER, /**< Request to let a user who has two calls to connect these two calls together and release its connections to both other parties */
463 } bt_ag_multi_call_handling_event_e;
467 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
468 * @brief Enumerations for the call state
471 BT_AG_CALL_EVENT_IDLE = 0x00, /**< Idle */
472 BT_AG_CALL_EVENT_ANSWERED, /**< Answered */
473 BT_AG_CALL_EVENT_HELD, /**< Held */
474 BT_AG_CALL_EVENT_RETRIEVED, /**< Retrieved */
475 BT_AG_CALL_EVENT_DIALING, /**< Dialing */
476 BT_AG_CALL_EVENT_ALERTING, /**< Alerting */
477 BT_AG_CALL_EVENT_INCOMING, /**< Incoming */
478 } bt_ag_call_event_e;
482 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
483 * @brief Enumerations for the call state
486 BT_AG_CALL_STATE_IDLE = 0x00, /**< Idle state */
487 BT_AG_CALL_STATE_ACTIVE, /**< Active state */
488 BT_AG_CALL_STATE_HELD, /**< Held state */
489 BT_AG_CALL_STATE_DIALING, /**< Dialing state */
490 BT_AG_CALL_STATE_ALERTING, /**< Alerting state */
491 BT_AG_CALL_STATE_INCOMING, /**< Incoming state */
492 BT_AG_CALL_STATE_WAITING, /**< Waiting for connected indication event after answering an incoming call*/
493 } bt_ag_call_state_e;
497 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
498 * @brief Enumerations for the equalizer state
501 BT_AVRCP_EQUALIZER_STATE_OFF = 0x01, /**< Equalizer Off */
502 BT_AVRCP_EQUALIZER_STATE_ON, /**< Equalizer On */
503 } bt_avrcp_equalizer_state_e;
507 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
508 * @brief Enumerations for the repeat mode
511 BT_AVRCP_REPEAT_MODE_OFF = 0x01, /**< Repeat Off */
512 BT_AVRCP_REPEAT_MODE_SINGLE_TRACK, /**< Single track repeat */
513 BT_AVRCP_REPEAT_MODE_ALL_TRACK, /**< All track repeat */
514 BT_AVRCP_REPEAT_MODE_GROUP, /**< Group repeat */
515 } bt_avrcp_repeat_mode_e;
519 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
520 * @brief Enumerations for the shuffle mode
523 BT_AVRCP_SHUFFLE_MODE_OFF = 0x01, /**< Shuffle Off */
524 BT_AVRCP_SHUFFLE_MODE_ALL_TRACK, /**< All tracks shuffle */
525 BT_AVRCP_SHUFFLE_MODE_GROUP, /**< Group shuffle */
526 } bt_avrcp_shuffle_mode_e;
530 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
531 * @brief Enumerations for the scan mode
534 BT_AVRCP_SCAN_MODE_OFF = 0x01, /**< Scan Off */
535 BT_AVRCP_SCAN_MODE_ALL_TRACK, /**< All tracks scan */
536 BT_AVRCP_SCAN_MODE_GROUP, /**< Group scan */
537 } bt_avrcp_scan_mode_e;
541 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
542 * @brief Enumerations for the player state
545 BT_AVRCP_PLAYER_STATE_STOPPED = 0x00, /**< Stopped */
546 BT_AVRCP_PLAYER_STATE_PLAYING, /**< Playing */
547 BT_AVRCP_PLAYER_STATE_PAUSED, /**< Paused */
548 BT_AVRCP_PLAYER_STATE_FORWARD_SEEK, /**< Seek Forward */
549 BT_AVRCP_PLAYER_STATE_REWIND_SEEK, /**< Seek Rewind */
550 } bt_avrcp_player_state_e;
553 * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
554 * @brief Enumerations for the data channel type
557 BT_HDP_CHANNEL_TYPE_RELIABLE = 0x01, /**< Reliable Data Channel */
558 BT_HDP_CHANNEL_TYPE_STREAMING, /**< Streaming Data Channel */
559 } bt_hdp_channel_type_e;
562 * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
563 * @brief Enumerations for the types of PAN(Personal Area Networking) service
566 BT_PANU_SERVICE_TYPE_NAP = 0, /**< Network Access Point */
567 } bt_panu_service_type_e;
570 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
571 * @brief The handle to control Bluetooth LE advertising
573 typedef void* bt_advertiser_h;
576 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
577 * @brief The attribute handle of GATT(Generic Attribute Profile)
579 typedef void* bt_gatt_attribute_h;
582 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
583 * @brief The handle of calls state
585 typedef void* bt_call_list_h;
588 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
589 * @brief Class structure of device and service.
591 * @see #bt_device_info_s
592 * @see #bt_adapter_device_discovery_info_s
593 * @see bt_device_bond_created_cb()
594 * @see bt_adapter_device_discovery_state_changed_cb()
598 bt_major_device_class_e major_device_class; /**< Major device class. */
599 bt_minor_device_class_e minor_device_class; /**< Minor device class. */
600 int major_service_class_mask; /**< Major service class mask.
601 This value can be a combination of #bt_major_service_class_e like #BT_MAJOR_SERVICE_CLASS_RENDERING | #BT_MAJOR_SERVICE_CLASS_AUDIO */
605 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
606 * @brief Structure of device discovery information.
609 * @see bt_adapter_device_discovery_state_changed_cb()
613 char *remote_address; /**< The address of remote device */
614 char *remote_name; /**< The name of remote device */
615 bt_class_s bt_class; /**< The Bluetooth classes */
616 int rssi; /**< The strength indicator of received signal */
617 bool is_bonded; /**< The bonding state */
618 char **service_uuid; /**< The UUID list of service */
619 int service_count; /**< The number of services */
620 bt_appearance_type_e appearance; /**< The Bluetooth appearance */
621 int manufacturer_data_len; /**< manufacturer specific data length */
622 char *manufacturer_data; /**< manufacturer specific data */
623 } bt_adapter_device_discovery_info_s;
626 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
627 * @brief Structure of le device discovery information.
630 * @see bt_adapter_le_device_discovery_state_changed_cb()
634 char *remote_address; /**< The address of remote device */
635 int address_type; /**< The address type of remote device */
636 int rssi; /**< The strength indicator of received signal */
637 char **service_uuid; /**< The UUID list of service */
638 int service_count; /**< The number of services */
639 int adv_data_len; /**< advertising indication data length */
640 char *adv_data; /**< advertising indication data */
641 int scan_data_len; /**< scan response data length */
642 char *scan_data; /**< scan response data */
643 } bt_adapter_le_device_discovery_info_s;
646 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
647 * @brief Structure of advertising parameters
650 * @see bt_adapter_le_advertising_state_changed_cb()
651 * @see bt_adapter_le_start_advertising()
654 float interval_min; /**< Minimum advertising interval for non-directed advertising.
655 A multiple of 0.625ms is only allowed (Time range : 20ms to 10.24sec). */
656 float interval_max; /**< Maximum advertising interval for non-directed advertising.
657 A multiple of 0.625ms is only allowed (Time range : 20ms to 10.24sec). */
658 char filter_policy; /* Advertising filter policy */
659 char type; /* Advertising type */
660 } bt_adapter_le_advertising_params_s;
663 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
664 * @brief Device information structure used for identifying pear device.
667 * @see bt_device_bond_created_cb()
671 char *remote_address; /**< The address of remote device */
672 char *remote_name; /**< The name of remote device */
673 bt_class_s bt_class; /**< The Bluetooth classes */
674 char **service_uuid; /**< The UUID list of service */
675 int service_count; /**< The number of services */
676 bool is_bonded; /**< The bonding state */
677 bool is_connected; /**< The connection state */
678 bool is_authorized; /**< The authorization state */
679 int manufacturer_data_len; /**< manufacturer specific data length */
680 char *manufacturer_data; /**< manufacturer specific data */
684 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
685 * @brief Service Discovery Protocol (SDP) data structure.
687 * @details This protocol is used for discovering available services or pear device,
688 * and finding one to connect with.
690 * @see bt_device_service_searched_cb()
694 char *remote_address; /**< The address of remote device */
695 char **service_uuid; /**< The UUID list of service */
696 int service_count; /**< The number of services. */
697 } bt_device_sdp_info_s;
700 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
701 * @brief Device connection information structure.
703 * @see bt_device_connection_state_changed_cb()
707 char *remote_address; /**< The address of remote device */
708 bt_device_connection_link_type_e link; /**< Link type */
709 bt_device_disconnect_reason_e disconn_reason; /**< Disconnection reason */
710 } bt_device_connection_info_s;
713 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
714 * @brief Device LE connection update structure.
716 * @see bt_device_le_conn_update()
720 unsigned int interval_min; /**< Minimum value for the connection event interval (msec) */
721 unsigned int interval_max; /**< Maximum value for the connection event interval (msec) */
722 unsigned int latency; /**< Slave latency (msec) */
723 unsigned int time_out; /**< Supervision timeout (msec) */
724 } bt_le_conn_update_s;
727 * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
729 * @brief Rfcomm connection data used for exchanging data between Bluetooth devices.
731 * @see bt_socket_connection_state_changed_cb()
735 int socket_fd; /**< The file descriptor of connected socket */
736 int server_fd; /**< The file descriptor of the server socket or -1 for client connection */
737 bt_socket_role_e local_role; /**< The local device role in this connection */
738 char *remote_address; /**< The remote device address */
739 char *service_uuid; /**< The service UUId */
740 } bt_socket_connection_s;
743 * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
745 * @brief Structure of RFCOMM received data.
747 * @remarks User can use standard linux functions for reading/writing
748 * data from/to sockets.
750 * @see bt_socket_data_received_cb()
754 int socket_fd; /**< The socket fd */
755 int data_size; /**< The length of the received data */
756 char *data; /**< The received data */
757 } bt_socket_received_data_s;
760 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
761 * @brief Called when the Bluetooth adapter state changes.
762 * @param[in] result The result of the adapter state changing
763 * @param[in] adapter_state The adapter state to be changed
764 * @param[in] user_data The user data passed from the callback registration function
765 * @see bt_adapter_set_state_changed_cb()
766 * @see bt_adapter_unset_state_changed_cb()
768 typedef void (*bt_adapter_state_changed_cb)(int result, bt_adapter_state_e adapter_state, void *user_data);
771 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
772 * @brief Called when adapter name changes.
773 * @param[in] device_name The name of the Bluetooth device to be changed
774 * @param[in] user_data The user data passed from the callback registration function
775 * @pre This function will be invoked when the name of Bluetooth adapter changes
776 * if you register this callback using bt_adapter_set_name_changed_cb().
777 * @see bt_adapter_set_name()
778 * @see bt_adapter_set_name_changed_cb()
779 * @see bt_adapter_unset_name_changed_cb()
781 typedef void (*bt_adapter_name_changed_cb)(char *device_name, void *user_data);
784 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
785 * @brief Called when the visibility mode changes.
786 * @param[in] result The result of the visibility mode changing
787 * @param[in] visibility_mode The visibility mode to be changed
788 * @param[in] user_data The user data passed from the callback registration function
790 * @pre This function will be invoked when the visibility of Bluetooth adapter changes
791 * if you register this callback using bt_adapter_set_visibility_mode_changed_cb().
793 * @see bt_adapter_set_visibility_mode_changed_cb()
794 * @see bt_adapter_unset_visibility_mode_changed_cb()
796 typedef void (*bt_adapter_visibility_mode_changed_cb)
797 (int result, bt_adapter_visibility_mode_e visibility_mode, void *user_data);
800 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
801 * @brief Called every second until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE.
802 * @remarks This callback function is called only if visibility mode is #BT_ADAPTER_VISIBILITY_MODE_LIMITED_DISCOVERABLE.
803 * @param[in] duration The duration until the visibility mode is changed to #BT_ADAPTER_VISIBILITY_MODE_NON_DISCOVERABLE (in seconds)
804 * @param[in] user_data The user data passed from the callback registration function
805 * @pre This function will be invoked if you register this callback using bt_adapter_set_visibility_duration_changed_cb().
806 * @see bt_adapter_set_visibility_duration_changed_cb()
807 * @see bt_adapter_unset_visibility_duration_changed_cb()
809 typedef void (*bt_adapter_visibility_duration_changed_cb)(int duration, void *user_data);
812 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
813 * @brief Called when the state of device discovery changes.
815 * @remarks If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_FOUND,
816 * then you can get some information, such as remote device address, remote device name, rssi, and bonding state.
818 * @param[in] result The result of the device discovery
819 * @param[in] discovery_state The discovery state to be changed
820 * @param[in] discovery_info The information of the discovered device \n
821 * If \a discovery_state is #BT_ADAPTER_DEVICE_DISCOVERY_STARTED or
822 * #BT_ADAPTER_DEVICE_DISCOVERY_FINISHED, then \a discovery_info is NULL.
823 * @param[in] user_data The user data passed from the callback registration function
825 * @pre Either bt_adapter_start_device_discovery() or bt_adapter_stop_device_discovery() will invoke this function
826 * if you register this callback using bt_adapter_set_device_discovery_state_changed_cb().
828 * @see bt_adapter_start_device_discovery()
829 * @see bt_adapter_stop_device_discovery()
830 * @see bt_adapter_set_device_discovery_state_changed_cb()
831 * @see bt_adapter_unset_device_discovery_state_changed_cb()
834 typedef void (*bt_adapter_device_discovery_state_changed_cb)
835 (int result, bt_adapter_device_discovery_state_e discovery_state, bt_adapter_device_discovery_info_s *discovery_info, void *user_data);
838 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
839 * @brief Called when you get bonded devices repeatedly.
841 * @param[in] device_info The bonded device information
842 * @param[in] user_data The user data passed from the foreach function
843 * @return @c true to continue with the next iteration of the loop,
844 * \n @c false to break out of the loop.
845 * @pre bt_adapter_foreach_bonded_device() will invoke this function.
847 * @see bt_adapter_foreach_bonded_device()
850 typedef bool (*bt_adapter_bonded_device_cb)(bt_device_info_s *device_info, void *user_data);
853 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
854 * @brief Called when the connectable state changes.
855 * @param[in] result The result of the connectable state changing
856 * @param[in] connectable The connectable to be changed
857 * @param[in] user_data The user data passed from the callback registration function
859 * @pre This function will be invoked when the connectable state of local Bluetooth adapter changes
860 * if you register this callback using bt_adapter_set_connectable_changed_cb().
862 * @see bt_adapter_set_connectable()
863 * @see bt_adapter_set_connectable_changed_cb()
864 * @see bt_adapter_unset_connectable_changed_cb()
866 typedef void (*bt_adapter_connectable_changed_cb)
867 (int result, bool connectable, void *user_data);
870 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
871 * @brief Called when the state of LE device discovery changes.
873 * @remarks If \a discovery_state is #BT_ADAPTER_LE_DEVICE_DISCOVERY_FOUND,
874 * then you can get some information, such as remote LE device address, remote device name, rssi, and bonding state.
876 * @param[in] result The result of the LE device discovery
877 * @param[in] discovery_state The discovery state to be changed
878 * @param[in] discovery_info The information of the discovered LE device \n
879 * If \a discovery_state is #BT_ADAPTER_LE_DEVICE_DISCOVERY_STARTED or
880 * #BT_ADAPTER_LE_DEVICE_DISCOVERY_FINISHED, then \a discovery_info is NULL.
881 * @param[in] user_data The user data passed from the callback registration function
883 * @pre Either bt_adapter_start_device_discovery() or bt_adapter_stop_device_discovery() will invoke this function
884 * if you register this callback using bt_adapter_set_device_discovery_state_changed_cb().
886 * @see bt_adapter_le_start_device_discovery()
887 * @see bt_adapter_le_stop_device_discovery()
888 * @see bt_adapter_le_set_device_discovery_state_changed_cb()
889 * @see bt_adapter_le_unset_device_discovery_state_changed_cb()
892 typedef void (*bt_adapter_le_device_discovery_state_changed_cb)
893 (int result, bt_adapter_le_device_discovery_state_e discovery_state, bt_adapter_le_device_discovery_info_s *discovery_info, void *user_data);
896 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
897 * @brief Called when the state of advertiser changes.
899 * @param[out] result The result of the requested state change of advertiser
900 * @param[out] advertiser The handle of the state changed advertiser
901 * @param[out] adv_state The advertiser state to be changed
902 * @param[out] user_data The user data passed from the start function
904 * @see bt_adapter_le_start_advertiser()
905 * @see bt_adapter_le_stop_advertiser()
907 typedef void (*bt_adapter_le_advertising_state_changed_cb)(int result,
908 bt_advertiser_h advertiser, bt_adapter_le_advertising_state_e adv_state, void *user_data);
911 * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
912 * @brief Called when the Bluetooth adapter le state changes.
913 * @param[in] result The result of the adapter state changing
914 * @param[in] adapter_le_state The adapter le state to be changed
915 * @param[in] user_data The user data passed from the callback registration function
916 * @pre Either bt_adapter_le_enable() or bt_adapter_le_disable() will invoke this callback if you register this callback using bt_adapter_le_set_state_changed_cb().
917 * @see bt_adapter_le_enable()
918 * @see bt_adapter_le_disable()
919 * @see bt_adapter_le_set_state_changed_cb()
920 * @see bt_adapter_le_unset_state_changed_cb()
922 typedef void (*bt_adapter_le_state_changed_cb)(int result, bt_adapter_le_state_e adapter_le_state, void *user_data);
925 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
926 * @brief Called when the process of creating bond finishes.
927 * @remarks If the remote user does not respond within 60 seconds, a time out will happen with #BT_ERROR_TIMED_OUT result code.\n
928 * If bt_device_cancel_bonding() is called and it returns #BT_ERROR_NONE, then this callback function will be called
929 * with #BT_ERROR_CANCELLED result. \n
930 * If creating a bond succeeds but service search fails, then this callback will be called with #BT_ERROR_SERVICE_SEARCH_FAILED.
931 * In this case, you should try service search again by bt_device_start_service_search() to get the supported service list.
933 * @param[in] result The result of the bonding device
934 * @param[in] device_info The device information which you creates bond with
935 * @param[in] user_data The user data passed from the callback registration function
937 * @pre Either bt_device_create_bond() will invoke this function
938 * if you register this callback using bt_device_set_bond_created_cb().
940 * @see bt_device_create_bond()
941 * @see bt_device_cancel_bonding()
942 * @see bt_device_set_bond_created_cb()
943 * @see bt_device_unset_bond_created_cb()
945 typedef void (*bt_device_bond_created_cb)(int result, bt_device_info_s *device_info, void *user_data);
948 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
949 * @brief Called when you get connected profiles repeatedly.
950 * @param[in] profile The connected Bluetooth profile
951 * @param[in] user_data The user data passed from the foreach function
952 * @return @c true to continue with the next iteration of the loop,
953 * \n @c false to break out of the loop.
954 * @pre bt_device_foreach_connected_profiles() will invoke this function.
955 * @see bt_device_foreach_connected_profiles()
957 typedef bool (*bt_device_connected_profile)(bt_profile_e profile, void *user_data);
960 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
961 * @brief Called when the bond destroys.
962 * @param[in] result The result that a bond is destroyed
963 * @param[in] remote_address The address of the remote Bluetooth device to destroy bond with
964 * @param[in] user_data The user data passed from the callback registration function
965 * @pre bt_device_destroy_bond() will invoke this function
966 * if you register this callback using bt_device_set_bond_destroyed_cb().
968 * @see bt_device_destroy_bond()
969 * @see bt_device_set_bond_destroyed_cb()
970 * @see bt_device_unset_bond_destroyed_cb()
972 typedef void (*bt_device_bond_destroyed_cb)(int result, char *remote_address, void *user_data);
975 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
976 * @brief Called when the authorization of device changes.
977 * @param[in] authorization The authorization of device
978 * @param[in] remote_address The address of the remote Bluetooth device which is (un)authorized
979 * @param[in] user_data The user data passed from the callback registration function
980 * @pre bt_device_set_authorization() will invoke this function if you register this callback using bt_device_set_authorization_changed_cb().
982 * @see bt_device_set_authorization()
983 * @see #bt_device_set_authorization_changed_cb()
984 * @see #bt_device_unset_authorization_changed_cb()
986 typedef void (*bt_device_authorization_changed_cb)
987 (bt_device_authorization_e authorization, char *remote_address, void *user_data);
990 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
991 * @brief Called when the process of service search finishes.
992 * @remark If bt_device_cancel_service_search() is called and it returns #BT_ERROR_NONE,
993 * then this callback function will be called with #BT_ERROR_CANCELLED result.
995 * @param[in] result The result of the service searching
996 * @param[in] sdp_info The structure of service lists found on a device
997 * @param[in] user_data The user data passed from the callback registration function
998 * @pre Either bt_device_start_service_search() will invoke this function
999 * if you register this callback using bt_device_set_service_searched_cb().
1001 * @see bt_device_start_service_search()
1002 * @see bt_device_cancel_service_search()
1003 * @see bt_device_set_service_searched_cb()
1004 * @see bt_device_unset_service_searched_cb()
1007 typedef void (*bt_device_service_searched_cb)(int result, bt_device_sdp_info_s *sdp_info, void *user_data);
1010 * @ingroup CAPI_NETWORK_BLUETOOTH_DEVICE_MODULE
1011 * @brief Called when the connection state is changed.
1012 * @param[in] connected The connection status: (@c true = connected, @c false = disconnected)
1013 * @param[in] conn_info The connection information
1014 * @param[in] user_data The user data passed from the callback registration function
1015 * @see bt_device_set_connection_state_changed_cb()
1016 * @see bt_device_unset_connection_state_changed_cb()
1018 typedef void (*bt_device_connection_state_changed_cb)(bool connected, bt_device_connection_info_s *conn_info, void *user_data);
1021 * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
1022 * @brief Called when you receive data.
1024 * @param[in] data The received data from the remote device
1025 * @param[in] user_data The user data passed from the callback registration function
1027 * @pre When the connected remote Bluetooth device invokes bt_socket_send_data(),
1028 * this function will be invoked if you register this function using bt_socket_set_data_received_cb().
1030 * @see bt_socket_set_data_received_cb()
1031 * @see bt_socket_unset_data_received_cb()
1032 * @see bt_socket_send_data()
1034 typedef void (*bt_socket_data_received_cb)(bt_socket_received_data_s *data, void *user_data);
1037 * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
1038 * @brief Called when the socket connection state changes.
1039 * @param[in] result The result of connection state changing
1040 * @param[in] connection_state The connection state
1041 * @param[in] connection The connection information which is established or disconnected
1042 * @param[in] user_data The user data passed from the callback registration function
1043 * @pre Either bt_socket_connect_rfcomm() will invoke this function.
1044 * In addtion, bt_socket_connection_state_changed_cb() will be invoked when the socket connection state is changed.
1045 * @see bt_socket_listen_and_accept_rfcomm()
1046 * @see bt_socket_connect_rfcomm()
1047 * @see bt_socket_set_connection_state_changed_cb()
1048 * @see bt_socket_unset_connection_state_changed_cb()
1050 typedef void (*bt_socket_connection_state_changed_cb)
1051 (int result, bt_socket_connection_state_e connection_state, bt_socket_connection_s *connection, void *user_data);
1054 * @ingroup CAPI_NETWORK_BLUETOOTH_SOCKET_MODULE
1055 * @brief Called when a RFCOMM connection is requested.
1056 * @details You must call bt_socket_accept() if you want to accept. Otherwise, you must call bt_socket_reject().
1057 * @param[in] socket_fd The file descriptor of socket on which a connection is requested
1058 * @param[in] remote_address The address of remote device
1059 * @param[in] user_data The user data passed from the callback registration function
1060 * @pre If you register this callback function by bt_socket_set_connection_requested_cb() and listen a socket by bt_socket_listen(),
1061 * bt_socket_connection_requested_cb() will be invoked.
1062 * @see bt_socket_listen()
1063 * @see bt_socket_accept()
1064 * @see bt_socket_reject()
1066 typedef void (*bt_socket_connection_requested_cb) (int socket_fd, const char *remote_address, void *user_data);
1069 * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
1070 * @brief Called when the push is requested.
1071 * @details You must call bt_opp_server_accept() if you want to accept.
1072 * Otherwise, you must call bt_opp_server_reject().
1073 * @param[in] file The path of file to be pushed
1074 * @param[in] size The file size (bytes)
1075 * @param[in] user_data The user data passed from the callback registration function
1076 * @see bt_opp_server_initialize()
1078 typedef void (*bt_opp_server_push_requested_cb)(const char *file, int size, void *user_data);
1081 * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
1082 * @brief Called when an OPP connection is requested.
1083 * @details You must call bt_opp_server_accept_connection() if you want to accept.
1084 * Otherwise, you must call bt_opp_server_reject_connection().
1085 * @param[in] remote_address The address of remote device
1086 * @param[in] user_data The user data passed from the callback registration function
1087 * @see bt_opp_server_initialize()
1088 * @see bt_opp_server_accept_connection()
1089 * @see bt_opp_server_reject_connection()
1091 typedef void (*bt_opp_server_connection_requested_cb)(const char *remote_address, void *user_data);
1094 * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
1095 * @brief Called when a file is being transfered.
1096 * @param[in] file The path of file to be pushed
1097 * @param[in] size The file size (bytes)
1098 * @param[in] percent The progress in percentage (1 ~ 100)
1099 * @param[in] user_data The user data passed from the callback registration function
1100 * @see bt_opp_server_accept()
1101 * @see bt_opp_server_accept_connection()
1103 typedef void (*bt_opp_server_transfer_progress_cb) (const char *file, long long size, int percent, void *user_data);
1106 * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_SERVER_MODULE
1107 * @brief Called when a transfer is finished.
1108 * @param[in] error_code The result of push
1109 * @param[in] file The path of file to be pushed
1110 * @param[in] size The file size (bytes)
1111 * @param[in] user_data The user data passed from the callback registration function
1112 * @see bt_opp_server_accept()
1113 * @see bt_opp_server_accept_connection()
1115 typedef void (*bt_opp_server_transfer_finished_cb) (int result, const char *file, long long size, void *user_data);
1118 * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
1119 * @brief Called when OPP server responds to the push request.
1120 * @param[in] result The result of OPP server response
1121 * @param[in] remote_address The remote address
1122 * @param[in] user_data The user data passed from the callback registration function
1123 * @pre bt_opp_client_push_files() will invoke this function.
1124 * @see bt_opp_client_push_files()
1126 typedef void (*bt_opp_client_push_responded_cb)(int result, const char *remote_address, void *user_data);
1129 * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
1130 * @brief Called when each file is being transfered.
1131 * @param[in] file The path of file to be pushed
1132 * @param[in] size The file size (bytes)
1133 * @param[in] percent The progress in percentage (1 ~ 100). 100 means that a file is transfered completely.
1134 * @param[in] user_data The user data passed from the callback registration function
1135 * @pre bt_opp_client_push_files() will invoke this function.
1136 * @see bt_opp_client_push_files()
1138 typedef void (*bt_opp_client_push_progress_cb)(const char *file, long long size, int percent, void *user_data);
1141 * @ingroup CAPI_NETWORK_BLUETOOTH_OPP_CLIENT_MODULE
1142 * @brief Called when the push request is finished.
1143 * @param[in] result The result of the push request
1144 * @param[in] remote_address The remote address
1145 * @param[in] user_data The user data passed from the callback registration function
1146 * @see bt_opp_client_push_files()
1148 typedef void (*bt_opp_client_push_finished_cb)(int result, const char *remote_address, void *user_data);
1151 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_MODULE
1152 * @brief Called when the connection state is changed.
1153 * @details This callback is called when the connection state is changed.
1154 * When you call bt_audio_connect() or bt_audio_disconnect(), this callback is also called with error result even though these functions fail.
1155 * @param[in] result The result of changing the connection state
1156 * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
1157 * @param[in] remote_address The remote address
1158 * @param[in] type The type of audio profile except #BT_AUDIO_PROFILE_TYPE_ALL
1159 * @param[in] user_data The user data passed from the callback registration function
1160 * @see bt_audio_set_connection_state_changed_cb()
1161 * @see bt_audio_unset_connection_state_changed_cb()
1163 typedef void (*bt_audio_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_audio_profile_type_e type, void *user_data);
1166 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
1167 * @brief Called when the SCO(Synchronous Connection Oriented link) state is changed.
1168 * @details This callback is called when the SCO state is changed.
1169 * When you call bt_ag_open_sco() or bt_ag_close_sco(), this callback is also called with error result even though these functions failed.
1170 * @param[in] result The result of changing the connection state
1171 * @param[in] opened The state to be changed: (@c true = opened, @c false = not opened)
1172 * @param[in] user_data The user data passed from the callback registration function
1173 * @see bt_ag_set_sco_state_changed_cb()
1174 * @see bt_ag_unset_sco_state_changed_cb()
1175 * @see bt_ag_open_sco()
1176 * @see bt_ag_close_sco()
1178 typedef void (*bt_ag_sco_state_changed_cb) (int result, bool opened, void *user_data);
1181 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
1182 * @brief Called when a call handling event happened from Hands-Free.
1183 * @param[in] event The call handling event happened from Hands-Free
1184 * @param[in] call_id The call ID
1185 * @param[in] user_data The user data passed from the callback registration function
1186 * @see bt_ag_set_call_handling_event_cb()
1187 * @see bt_ag_unset_call_handling_event_cb()
1189 typedef void (*bt_ag_call_handling_event_cb) (bt_ag_call_handling_event_e event, unsigned int call_id, void *user_data);
1192 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
1193 * @brief Called when a multi call handling event happened from Hands-Free.
1194 * @param[in] event The call handling event happened from Hands-Free
1195 * @param[in] user_data The user data passed from the callback registration function
1196 * @see bt_ag_set_multi_call_handling_event_cb()
1197 * @see bt_ag_unset_multi_call_handling_event_cb()
1199 typedef void (*bt_ag_multi_call_handling_event_cb) (bt_ag_multi_call_handling_event_e event, void *user_data);
1202 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
1203 * @brief Called when a DTMF(Dual Tone Multi Frequency) is transmitted from Hands-Free.
1204 * @param[in] dtmf The DTMF transmitted from Hands-Free
1205 * @param[in] user_data The user data passed from the callback registration function
1206 * @see bt_ag_set_dtmf_transmitted_cb()
1207 * @see bt_ag_unset_dtmf_transmitted_cb()
1209 typedef void (*bt_ag_dtmf_transmitted_cb) (const char *dtmf, void *user_data);
1212 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
1213 * @brief Called when the speaker gain of the remote device is changed.
1214 * @param[in] gain The gain of speaker (0 ~ 15)
1215 * @param[in] user_data The user data passed from the callback registration function
1216 * @see bt_ag_set_speaker_gain_changed_cb()
1217 * @see bt_ag_unset_speaker_gain_changed_cb()
1219 typedef void (*bt_ag_speaker_gain_changed_cb) (int gain, void *user_data);
1222 * @ingroup CAPI_NETWORK_BLUETOOTH_AUDIO_AG_MODULE
1223 * @brief Called when the microphone gain of the remote device is changed.
1224 * @param[in] gain The gain of microphone (0 ~ 15)
1225 * @param[in] user_data The user data passed from the callback registration function
1226 * @see bt_ag_set_microphone_gain_changed_cb()
1227 * @see bt_ag_unset_microphone_gain_changed_cb()
1229 typedef void (*bt_ag_microphone_gain_changed_cb) (int gain, void *user_data);
1232 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
1233 * @brief Called when the connection state is changed.
1234 * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
1235 * @param[in] remote_address The remote address
1236 * @param[in] user_data The user data passed from the callback registration function
1237 * @see bt_avrcp_target_initialize()
1238 * @see bt_avrcp_target_deinitialize()
1240 typedef void (*bt_avrcp_target_connection_state_changed_cb) (bool connected, const char *remote_address, void *user_data);
1243 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
1244 * @brief Called when the equalizer state is changed by the remote control device.
1245 * @param[in] equalizer The equalizer state
1246 * @param[in] user_data The user data passed from the callback registration function
1247 * @see bt_avrcp_set_equalizer_state_changed_cb()
1248 * @see bt_avrcp_unset_equalizer_state_changed_cb()
1250 typedef void (*bt_avrcp_equalizer_state_changed_cb) (bt_avrcp_equalizer_state_e equalizer, void *user_data);
1253 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
1254 * @brief Called when the repeat mode is changed by the remote control device.
1255 * @param[in] repeat The repeat mode
1256 * @param[in] user_data The user data passed from the callback registration function
1257 * @see bt_avrcp_set_repeat_mode_changed_cb()
1258 * @see bt_avrcp_unset_repeat_mode_changed_cb()
1260 typedef void (*bt_avrcp_repeat_mode_changed_cb) (bt_avrcp_repeat_mode_e repeat, void *user_data);
1263 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
1264 * @brief Called when the shuffle mode is changed by the remote control device.
1265 * @param[in] shuffle The shuffle mode
1266 * @param[in] user_data The user data passed from the callback registration function
1267 * @see bt_avrcp_set_shuffle_mode_changed_cb()
1268 * @see bt_avrcp_unset_shuffle_mode_changed_cb()
1270 typedef void (*bt_avrcp_shuffle_mode_changed_cb) (bt_avrcp_shuffle_mode_e shuffle, void *user_data);
1273 * @ingroup CAPI_NETWORK_BLUETOOTH_AVRCP_MODULE
1274 * @brief Called when the scan mode is changed by the remote control device.
1275 * @param[in] shuffle The shuffle mode
1276 * @param[in] user_data The user data passed from the callback registration function
1277 * @see bt_avrcp_set_scan_mode_changed_cb()
1278 * @see bt_avrcp_unset_scan_mode_changed_cb()
1280 typedef void (*bt_avrcp_scan_mode_changed_cb) (bt_avrcp_scan_mode_e scan, void *user_data);
1283 * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
1284 * @brief Called when the connection state is changed.
1285 * @details This callback is called when the connection state is changed.
1286 * When you call bt_hid_host_connect() or bt_hid_host_disconnect(), this callback is also called with error result even though these functions fail.
1287 * @param[in] result The result of changing the connection state
1288 * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
1289 * @param[in] remote_address The remote address
1290 * @param[in] user_data The user data passed from the callback registration function
1291 * @see bt_hid_host_connect()
1292 * @see bt_hid_host_disconnect()
1294 typedef void (*bt_hid_host_connection_state_changed_cb) (int result, bool connected, const char *remote_address, void *user_data);
1297 * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
1298 * @brief Called when the connection is established.
1299 * @param[in] result The result of connecting to the remote device
1300 * @param[in] remote_address The address of connected remote device
1301 * @param[in] app_id The ID of application
1302 * @param[in] type The type of HDP(Health Device Profile) channel
1303 * @param[in] channel The connected data channel
1304 * @param[in] user_data The user data passed from the callback registration function
1305 * @see bt_hdp_disconnected_cb
1306 * @see bt_hdp_set_connection_state_changed_cb()
1307 * @see bt_hdp_unset_connection_state_changed_cb()
1309 typedef void (*bt_hdp_connected_cb) (int result, const char *remote_address, const char *app_id,
1310 bt_hdp_channel_type_e type, unsigned int channel, void *user_data);
1313 * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
1314 * @brief Called when the connection is disconnected.
1315 * @param[in] result The result of disconnecting from the remote device
1316 * @param[in] remote_address The address of disconnected remote device
1317 * @param[in] channel The connected data channel
1318 * @param[in] user_data The user data passed from the callback registration function
1319 * @see bt_hdp_connected_cb
1320 * @see bt_hdp_set_connection_state_changed_cb()
1321 * @see bt_hdp_unset_connection_state_changed_cb()
1323 typedef void (*bt_hdp_disconnected_cb) (int result, const char *remote_address, unsigned int channel, void *user_data);
1326 * @ingroup CAPI_NETWORK_BLUETOOTH_HDP_MODULE
1327 * @brief Called when the you receive the data.
1328 * @param[in] channel The connected data channel
1329 * @param[in] data The received data
1330 * @param[in] size The size of received data (byte)
1331 * @param[in] user_data The user data passed from the callback registration function
1332 * @see bt_hdp_set_data_received_cb()
1333 * @see bt_hdp_unset_data_received_cb()
1335 typedef void (*bt_hdp_data_received_cb) (unsigned int channel, const char *data, unsigned int size, void *user_data);
1338 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
1339 * @brief Called when you get the primary services repeatedly.
1340 * @param[in] service The attribute handle of service
1341 * @param[in] index The index of a service, starts from 0
1342 * @param[in] total The total number of services
1343 * @param[in] user_data The user data passed from the foreach function
1344 * @return @c true to continue with the next iteration of the loop,
1345 * \n @c false to break out of the loop.
1346 * @pre bt_gatt_foreach_primary_services() will invoke this function.
1347 * @see bt_gatt_foreach_primary_services()
1349 typedef bool (*bt_gatt_primary_service_cb) (bt_gatt_attribute_h service, int index, int total, void *user_data);
1352 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
1353 * @brief Called after the characteristics are discovered by bt_gatt_discover_characteristics().
1354 * @remarks If bt_gatt_discover_characteristics() failed, then this callback function is called only once with 0 totla and NULL characteristic_handle.
1355 * @param[in] result The result of discovering
1356 * @param[in] index The index of characteristics in a service, starts from 0
1357 * @param[in] total The total number of characteristics in a service
1358 * @param[in] characteristic The attribute handle of characteristic
1359 * @param[in] user_data The user data passed from the request function
1360 * @return @c true to continue with the next iteration of the loop,
1361 * \n @c false to break out of the loop.
1362 * @pre bt_gatt_discover_characteristics() will invoke this callback.
1363 * @see bt_gatt_discover_characteristics()
1365 typedef bool (*bt_gatt_characteristics_discovered_cb) (int result, int index, int total, bt_gatt_attribute_h characteristic, void *user_data);
1368 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
1369 * @brief Called when you get the included services repeatedly.
1370 * @param[in] service The attribute handle of service
1371 * @param[in] user_data The user data passed from the foreach function
1372 * @return @c true to continue with the next iteration of the loop,
1373 * \n @c false to break out of the loop.
1374 * @pre bt_gatt_foreach_included_services() will invoke this function.
1375 * @see bt_gatt_foreach_included_services()
1377 typedef bool (*bt_gatt_included_service_cb) (bt_gatt_attribute_h service, void *user_data);
1380 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
1381 * @brief Called when a characteristic in service is changed.
1382 * @param[in] characteristic The attribute handle of characteristic
1383 * @param[in] value The value of characteristic (byte array)
1384 * @param[in] value_length The length of value
1385 * @param[in] user_data The user data passed from the callback registration function
1386 * @see bt_gatt_set_characteristic_changed_cb()
1387 * @see bt_gatt_unset_characteristic_changed_cb()
1389 typedef void (*bt_gatt_characteristic_changed_cb) (bt_gatt_attribute_h characteristic, unsigned char *value, int value_length, void *user_data);
1392 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
1393 * @brief Called when a characteristic value is written.
1394 * @see bt_gatt_set_characteristic_value()
1396 typedef void (*bt_gatt_characteristic_write_cb) (int result, void *user_data);
1399 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
1400 * @brief Called when a characteristic value is read.
1401 * @param[in] value The value of characteristic (byte array)
1402 * @param[in] value_length The length of value
1403 * @param[in] user_data The user data passed from the foreach function
1404 * @see bt_gatt_read_characteristic_value()
1406 typedef void (*bt_gatt_characteristic_read_cb) (unsigned char *value,
1407 int value_length, void *user_data);
1410 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
1411 * @brief Called after the characteristics descriptors are discovered by bt_gatt_discover_characteristic_descriptor().
1412 * @param[in] result The result of discovering
1413 * @param[in] characteristic_format The format of the information data.
1414 * characteristic_format = 0x01 indicates UUIDs are 16-bits
1415 * characteristic_format = 0x02 indicates UUIDs are 128-bits
1416 * @param[in] total The total number of elements in characteristic_descriptor
1417 * @param[in] characteristic descriptor The attribute handle and the UUID of characteristic descriptor
1418 * @param[in] characteristic The attribute handle and the UUID of characteristic
1419 * @param[in] user_data The user data passed from the request function
1420 * @see bt_gatt_discover_characteristic_descriptor()
1422 typedef void (*bt_gatt_characteristic_descriptor_discovered_cb) (int result,
1423 unsigned char characteristic_format, int total,
1424 bt_gatt_attribute_h characteristic_descriptor,
1425 bt_gatt_attribute_h characteristic, void *user_data);
1428 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
1429 * @brief Called when the connection state is changed.
1430 * @details This callback is called when the connection state is changed.
1431 * When you called bt_gatt_connect() or bt_gatt_disconnect(), this callback is also called with error result even though these functions fail.
1433 * @param[in] result The result of changing the connection state.
1434 * @param[in] connected The state to be changed, @a true means connected state, Otherwise, @a false.
1435 * @param[in] remote_address The remote_address
1436 * @param[in] user_data The user data passed from the callback registration function.
1438 * @see bt_gatt_connect()
1439 * @see bt_gatt_disconnect()
1440 * @see bt_gatt_set_connection_state_changed_cb()
1441 * @see bt_gatt_unset_connection_state_changed_cb()
1443 typedef void (*bt_gatt_connection_state_changed_cb)(int result, bool connected, const char *remote_address, void *user_data);
1446 * @ingroup CAPI_NETWORK_BLUETOOTH_GATT_MODULE
1447 * @brief Called when the remote devices writes a characteristic to the server db.
1448 * @details This callback is called when the remote client device writes a characteristics
1449 * to the server attribute database.
1451 * @param[in] char_path Characteristic path for which the value is writtten.
1452 * @param[in] char_value The characteristic value
1453 * @param[in] value_length The length of the characteristic value written.
1454 * @param[in] remote_address remote client device bd address.
1456 * @see bt_gatt_connect()
1458 typedef void (*bt_gatt_remote_characteristic_write_cb) (char *char_path,
1459 unsigned char* char_value, int value_length,
1460 const char *remote_address,
1464 * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_NAP_MODULE
1465 * @brief Called when the connection state is changed.
1466 * @param[in] connected Indicates whether a client is connected or disconnected
1467 * @param[in] remote_address The remote address
1468 * @param[in] interface_name The interface name. For example, bnep0, bnep1.
1469 * @param[in] user_data The user data passed from the callback registration function
1470 * @see bt_nap_set_connection_state_changed_cb()
1471 * @see bt_nap_unset_connection_state_changed_cb()
1473 typedef void (*bt_nap_connection_state_changed_cb) (bool connected, const char *remote_address, const char *interface_name, void *user_data);
1476 * @ingroup CAPI_NETWORK_BLUETOOTH_PAN_PANU_MODULE
1477 * @brief Called when the connection state is changed.
1478 * @details This callback is called when the connection state is changed.
1479 * When you call bt_panu_connect() or bt_panu_disconnect(), this callback is also called with error result even though these functions fail.
1480 * @param[in] result The result of changing the connection state
1481 * @param[in] connected The state to be changed. @a true means connected state, Otherwise, @a false.
1482 * @param[in] remote_address The remote address
1483 * @param[in] type The type of PAN service
1484 * @param[in] user_data The user data passed from the callback registration function
1485 * @see bt_nap_set_connection_state_changed_cb()
1486 * @see bt_nap_unset_connection_state_changed_cb()
1488 typedef void (*bt_panu_connection_state_changed_cb) (int result, bool connected, const char *remote_address, bt_panu_service_type_e type, void *user_data);
1493 #endif /* __cplusplus */
1495 #endif // __TIZEN_NETWORK_BLUETOOTH_TYPE_H__