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_PRIVATE_H__
19 #define __TIZEN_NETWORK_BLUETOOTH_PRIVATE_H__
23 #include <bluetooth-api.h>
24 #include <bluetooth-audio-api.h>
25 #include <bluetooth-telephony-api.h>
26 #include <bluetooth-media-control.h>
27 #include <bluetooth-hid-api.h>
29 #include "bluetooth.h"
36 #define LOG_TAG "CAPI_NETWORK_BLUETOOTH"
38 #define BT_INFO(fmt, args...) SLOGI(fmt, ##args)
39 #define BT_DBG(fmt, args...) SLOGD(fmt, ##args)
40 #define BT_ERR(fmt, args...) SLOGE(fmt, ##args)
42 #define OPP_UUID "00001105-0000-1000-8000-00805f9b34fb"
46 * @brief Bluetooth callback.
50 BT_EVENT_STATE_CHANGED = 0x00, /**< Adapter state is changed */
51 BT_EVENT_LE_STATE_CHANGED, /**< Adapter le state is changed */
52 BT_EVENT_NAME_CHANGED, /**< Adapter name is changed */
53 BT_EVENT_VISIBILITY_MODE_CHANGED, /**< Adapter visibility mode is changed */
54 BT_EVENT_VISIBILITY_DURATION_CHANGED, /**< Adapter visibility duration is changed */
55 BT_EVENT_DEVICE_DISCOVERY_STATE_CHANGED, /**< Device discovery state is changed */
56 BT_EVENT_LE_DEVICE_DISCOVERY_STATE_CHANGED, /**< LE Device discovery state is changed */
57 BT_EVENT_BOND_CREATED, /**< A bond is created */
58 BT_EVENT_BOND_DESTROYED, /**< A bond is destroyed */
59 BT_EVENT_AUTHORIZATION_CHANGED, /**< Authorization is changed */
60 BT_EVENT_SERVICE_SEARCHED, /**< Service search finish */
61 BT_EVENT_DATA_RECEIVED, /**< Data is received */
62 BT_EVENT_CONNECTION_STATE_CHANGED, /**< Connection state is changed */
63 BT_EVENT_RFCOMM_CONNECTION_REQUESTED, /**< RFCOMM connection is requested */
64 BT_EVENT_OPP_CONNECTION_REQUESTED, /**< OPP connection is requested */
65 BT_EVENT_OPP_PUSH_REQUESTED, /**< OPP push is requested */
66 BT_EVENT_OPP_SERVER_TRANSFER_PROGRESS, /**< OPP transfer progress */
67 BT_EVENT_OPP_SERVER_TRANSFER_FINISHED, /**< OPP transfer is completed */
68 BT_EVENT_OPP_CLIENT_PUSH_RESPONSED, /**< OPP client connection is reponsed */
69 BT_EVENT_OPP_CLIENT_PUSH_PROGRESS, /**< OPP client push progress */
70 BT_EVENT_OPP_CLIENT_PUSH_FINISHED, /**< OPP client push is finished */
71 BT_EVENT_PAN_CONNECTION_STATE_CHANGED, /**< PAN connection change */
72 BT_EVENT_NAP_CONNECTION_STATE_CHANGED, /**< NAP connection change */
73 BT_EVENT_HDP_CONNECTED, /**< HDP connection change */
74 BT_EVENT_HDP_DISCONNECTED, /**< HDP disconnection change */
75 BT_EVENT_HDP_DATA_RECEIVED, /**< HDP Data receive Callabck */
76 BT_EVENT_AUDIO_CONNECTION_STATUS, /**< Audio Connection change callback */
77 BT_EVENT_AG_SCO_CONNECTION_STATUS, /**< Audio - AG SCO Connection state change callback */
78 BT_EVENT_AG_CALL_HANDLING_EVENT, /**< Audio - AG call event callback */
79 BT_EVENT_AG_MULTI_CALL_HANDLING_EVENT, /**< Audio - AG 3-way call event callback */
80 BT_EVENT_AG_DTMF_TRANSMITTED, /**< Audio - DTMF tone sending request */
81 BT_EVENT_AG_MICROPHONE_GAIN_CHANGE, /**< Audio Microphone change callback */
82 BT_EVENT_AG_SPEAKER_GAIN_CHANGE, /**< Audio Speaker gain change callback */
83 BT_EVENT_AG_VENDOR_CMD, /**< Audio - XSAT Vendor cmd */
84 BT_EVENT_AVRCP_CONNECTION_STATUS, /**< AVRCP connection change callback */
85 BT_EVENT_AVRCP_EQUALIZER_STATE_CHANGED, /**< AVRCP equalizer state change callback */
86 BT_EVENT_AVRCP_REPEAT_MODE_CHANGED, /**< AVRCP repeat mode change callback */
87 BT_EVENT_AVRCP_SHUFFLE_MODE_CHANGED, /**< AVRCP equalizer mode change callback */
88 BT_EVENT_AVRCP_SCAN_MODE_CHANGED, /**< AVRCP scan mode change callback */
89 BT_EVENT_HID_CONNECTION_STATUS, /**< HID connection status callback */
90 BT_EVENT_DEVICE_CONNECTION_STATUS, /**< Device connection status callback */
91 BT_EVENT_GATT_CONNECTION_STATUS, /** < GATT connection status callback */
92 BT_EVENT_GATT_PRIM_SVC_DISCOVERED, /**< GATT Primary Service discovered callback */
93 BT_EVENT_GATT_CHARACTERISTIC_DISCOVERED, /**< GATT characteristic discovered callback */
94 BT_EVENT_GATT_CHARACTERISTIC_DESCRIPTOR_DISCOVERED, /**< GATT characteristic descriptor discovered callback */
95 BT_EVENT_GATT_VALUE_CHANGED, /**< GATT characteristic value changed callback */
96 BT_EVENT_GATT_READ_CHARACTERISTIC, /**< GATT characteristic value read callback */
97 BT_EVENT_GATT_WRITE_CHARACTERISTIC, /**< GATT characteristic value write callback */
98 BT_EVENT_GATT_SERVER_ON_WRITE_CHAR, /**< GATT characteristic value write callback */
99 BT_EVENT_ADVERTISING_STATE_CHANGED, /**< Advertising state changed callback */
100 BT_EVENT_MANUFACTURER_DATA_CHANGED, /**< Manufacturer data changed callback */
101 BT_EVENT_CONNECTABLE_CHANGED_EVENT, /**< Adapter connectable changed callback */
102 BT_EVENT_RSSI_ENABLED_EVENT, /**< RSSI Enabled callback */
103 BT_EVENT_RSSI_ALERT_EVENT, /**< RSSI Alert callback */
104 BT_EVENT_GET_RSSI_EVENT, /**< Get RSSI Strength callback */
105 #ifdef TIZEN_WEARABLE
106 BT_EVENT_PBAP_CONNECTION_STATUS, /**< PBAP connection status callback */
107 BT_EVENT_PBAP_PHONEBOOK_SIZE, /**< PBAP Phonebook Size status callback */
108 BT_EVENT_PBAP_PHONEBOOK_PULL, /**< PBAP Phonebook Pull status callback */
109 BT_EVENT_PBAP_VCARD_LIST, /**< PBAP vCard List status callback */
110 BT_EVENT_PBAP_VCARD_PULL, /**< PBAP vCard Pull status callback */
111 BT_EVENT_PBAP_PHONEBOOK_SEARCH, /**< PBAP Phonebook Search status callback */
112 BT_EVENT_HF_SCO_CONNECTION_STATUS, /**< Audio - HF SCO Connection state change callback */
113 BT_EVENT_HF_SPEAKER_GAIN_CHANGE, /**< Audio - HF Speaker gain change callback */
114 BT_EVENT_HF_CALL_HANDLING_EVENT, /**< Audio - HF call event callback */
115 BT_EVENT_HF_VENDOR_DEP_CMD_EVENT, /**< Audio - HF Vendor Command callback */
116 BT_EVENT_HF_MULTI_CALL_HANDLING_EVENT, /**< Audio - HF 3-way call event callback */
126 bt_adapter_le_advertising_state_changed_cb cb;
129 bt_adapter_le_advertising_params_s adv_params;
131 unsigned int adv_data_len;
134 unsigned int scan_rsp_data_len;
143 typedef struct bt_event_sig_event_slot_s
146 const void *callback;
148 } bt_event_sig_event_slot_s;
151 #define BT_CHECK_INPUT_PARAMETER(arg) \
154 LOGE("[%s] INVALID_PARAMETER(0x%08x)", __FUNCTION__, BT_ERROR_INVALID_PARAMETER); \
155 return BT_ERROR_INVALID_PARAMETER; \
160 * @brief Check the initialzating status
162 int _bt_check_init_status(void);
164 #define BT_CHECK_INIT_STATUS() \
165 if (_bt_check_init_status() == BT_ERROR_NOT_INITIALIZED) \
167 LOGE("[%s] NOT_INITIALIZED(0x%08x)", __FUNCTION__, BT_ERROR_NOT_INITIALIZED); \
168 return BT_ERROR_NOT_INITIALIZED; \
173 * @brief Initialize Bluetooth LE adapter
175 int _bt_le_adapter_init(void);
179 * @brief Deinitialize Bluetooth LE adapter
181 int _bt_le_adapter_deinit(void);
185 * @brief Set the event callback.
187 void _bt_set_cb(int events, void *callback, void *user_data);
191 * @brief Unset the event callback.
193 void _bt_unset_cb(int events);
197 * @brief Check if the event callback exist or not.
199 bool _bt_check_cb(int events);
203 * @brief Convert Bluetooth F/W error codes to capi Bluetooth error codes.
205 int _bt_get_error_code(int origin_error);
210 * @brief Convert Bluetooth F/W bluetooth_device_info_t to capi bt_device_info_s.
212 int _bt_get_bt_device_info_s(bt_device_info_s **dest_dev, bluetooth_device_info_t *source_dev);
217 * @brief Free bt_device_info_s.
219 void _bt_free_bt_device_info_s(bt_device_info_s *device_info);
223 * @brief Convert Bluetooth F/W bluetooth_device_address_t to string.
225 int _bt_convert_address_to_string(char **addr_str, bluetooth_device_address_t *addr_hex);
230 * @brief Convert string to Bluetooth F/W bluetooth_device_address_t.
232 void _bt_convert_address_to_hex(bluetooth_device_address_t *addr_hex, const char *addr_str);
237 * @brief Convert error code to string.
239 char* _bt_convert_error_to_string(int error);
243 * @brief Convert the visibility mode
245 bt_adapter_visibility_mode_e _bt_get_bt_visibility_mode_e(bluetooth_discoverable_mode_t mode);
249 * @brief Since the Audio call back and event proxy call backs have different prototype it is wrapper function.
251 void _bt_audio_event_proxy(int event, bt_audio_event_param_t *param, void *user_data);
253 #ifdef TIZEN_WEARABLE
256 * @brief Since the HF call back and event proxy call backs have different prototype it is wrapper function.
258 void _bt_hf_event_proxy(int event, bt_hf_event_param_t *param, void *user_data);
263 * @brief Since the Telephony call back and event proxy call backs have different prototype it is wrapper function.
265 void _bt_telephony_event_proxy(int event, telephony_event_param_t *param, void *user_data);
269 * @brief Since the AVRCP call back and event proxy call backs have different prototype it is wrapper function.
271 void _bt_avrcp_event_proxy(int event, media_event_param_t *param, void *user_data);
275 * @brief Since the HID call back and event proxy call backs have different prototype it is wrapper function.
277 void _bt_hid_event_proxy(int event, hid_event_param_t *param, void *user_data);
284 #endif /* __TIZEN_NETWORK_BLUETOOTH_PRIVATE_H__ */