#define _BLUETOOTH_API_H_
#include <stdlib.h>
+#include <stdbool.h>
#include <unistd.h>
#include <glib.h>
* @{
*/
-#define BLUETOOTH_ADDRESS_LENGTH 6 /**< This specifies bluetooth device address length */
-#define BLUETOOTH_VERSION_LENGTH_MAX 30 /**< This specifies bluetooth device version length */
-#define BLUETOOTH_INTERFACE_NAME_LENGTH 16
-#define BLUETOOTH_DEVICE_NAME_LENGTH_MAX 248 /**< This specifies maximum device name length */
+#define BLUETOOTH_ADDRESS_STRING_LENGTH 17 /**< This specifies bluetooth device address length (AA:BB:CC:DD:EE:FF) */
+#define BLUETOOTH_ADDRESS_LENGTH 6 /**< This specifies bluetooth device address length */
+#define BLUETOOTH_VERSION_LENGTH_MAX 30 /**< This specifies bluetooth device version length */
+#define BLUETOOTH_INTERFACE_NAME_LENGTH 16
+#define BLUETOOTH_DEVICE_NAME_LENGTH_MAX 248 /**< This specifies maximum device name length */
#define BLUETOOTH_DEVICE_PASSKEY_LENGTH_MAX 50 /**< This specifies maximum length of the passkey */
#define BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX 31 /**< This specifies maximum AD data length */
-#define BLUETOOTH_SCAN_RESP_DATA_LENGTH_MAX 31 /**< This specifies maximum LE Scan response data length */
+#define BLUETOOTH_SCAN_RESP_DATA_LENGTH_MAX 31 /**< This specifies maximum LE Scan response data length */
#define BLUETOOTH_MANUFACTURER_DATA_LENGTH_MAX 240 /**< This specifies maximum manufacturer data length */
-#define BLUETOOTH_MAX_SERVICES_FOR_DEVICE 40 /**< This specifies maximum number of services
+#define BLUETOOTH_MAX_SERVICES_FOR_DEVICE 40 /**< This specifies maximum number of services
a device can support */
+#define BLUETOOTH_MAX_ATT_MTU 512 /**< This specifies the maximum ATT MTU Value*/
+
#define BLUETOOTH_UUID_STRING_MAX 50
#define BLUETOOTH_PATH_STRING 50
#define BLUETOOTH_MAX_DPM_LIST 20 /**< This specifies maximum number of devices/uuids
dpm shall store */
+#define BLUETOOTH_TDS_DATA_LENGTH_MAX 239 /**< This specifies maximum AD data length: 0xEF */
+#define BLUETOOTH_TDS_CONTROL_POINT_PARAM_LENGTH_MAX 500 /**< TDS Control Point parameter Max length */
+
+/*
+ * < This defines the maximum size of OTP server directory name
+ */
+#define BLUETOOTH_MAX_OTP_SERVER_DIR_NAME 100
+
/**
* This is Bluetooth error code
*/
#define BLUETOOTH_ERROR_NOT_INITIALIZED ((int)BLUETOOTH_ERROR_BASE - 0x26)
/**< Not initialized */
-#define BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION ((int)BLUETOOTH_ERROR_BASE - 0x27)
+#define BLUETOOTH_ERROR_AUTHENTICATION_REJECTED ((int)BLUETOOTH_ERROR_BASE - 0x27)
+ /**< Authentication rejected */
+
+#define BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION ((int)BLUETOOTH_ERROR_BASE - 0x28)
/**< Device Policy Restricted */
/**
+ * Device disconnection reasons; received from stack
+ */
+#define BLUETOOTH_ERROR_PAGE_TIMEOUT 0x04
+#define BLUETOOTH_ERROR_AUTH_FAILURE 0x05
+#define BLUETOOTH_ERROR_PIN_OR_KEY_MISSING 0x06
+#define BLUETOOTH_ERROR_CONNECTION_TIMEOUT 0x08
+#define BLUETOOTH_ERROR_REMOTE_USER_TERM 0x13
+#define BLUETOOTH_ERROR_REMOTE_LOW_RESOURCES 0x14
+#define BLUETOOTH_ERROR_REMOTE_POWER_OFF 0x15
+#define BLUETOOTH_ERROR_LOCAL_HOST_TERM 0x16
+#define BLUETOOTH_ERROR_REPEATED_ATTEMPTS 0x17
+#define BLUETOOTH_ERROR_LMP_RESPONSE_TIMEOUT 0x22
+#define BLUETOOTH_ERROR_LMP_TRANSACTION_COLLISION 0x23
+#define BLUETOOTH_ERROR_INSTANT_PASSED 0x28
+#define BLUETOOTH_ERROR_INSUFFICIENT_SECURITY 0x2f
+#define BLUETOOTH_ERROR_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE 0x3d
+#define BLUETOOTH_ERROR_CONNECTION_FAILED_TO_BE_ESTABLISHED 0x3e
+
+#define BLUETOOTH_ERROR_INVALID_DIRECTORY 0x01
+
+/**
* Device disconnect reason
*/
typedef enum {
/**
* Service type
+ * Service type matched to bt_profile_type_t of bt-service-common.h
*/
typedef enum {
BLUETOOTH_RFCOMM_SERVICE = 0x01,
BLUETOOTH_GATT_SERVICE = 0x40,
BLUETOOTH_NAP_SERVER_SERVICE = 0x80,
BLUETOOTH_A2DP_SINK_SERVICE = 0x100,
+ BLUETOOTH_PBAP_SERVICE = 0x200,
} bluetooth_service_type_t;
/**
* Service type
*/
typedef enum {
- BLUETOOTH_DEV_CONN_DEFAULT = 0xFF, /* represents that connection
- * type can both BR/EDR and LE */
- BLUETOOTH_DEV_CONN_BREDR = 0x00,
- BLUETOOTH_DEV_CONN_LE = 0x01,
+ BLUETOOTH_DEV_CONN_DEFAULT = 0xFF,
+ /* represents that connection
+ * type can both BR/EDR and LE */
+ BLUETOOTH_DEV_CONN_BREDR = 0x00,
+ BLUETOOTH_DEV_CONN_LE = 0x01,
} bluetooth_conn_type_t;
/**
} bluetooth_advertising_type_t;
typedef enum {
+ BLUETOOTH_GATT_SERVICE_CHANGE_TYPE_ADD = 0x01,
+ BLUETOOTH_GATT_SERVICE_CHANGE_TYPE_REMOVE = 0x02,
+} bluetooth_gatt_service_change_type_t;
+
+typedef enum {
BLUETOOTH_GATT_PERMISSION_READ = 0x01,
BLUETOOTH_GATT_PERMISSION_WRITE = 0x02,
BLUETOOTH_GATT_PERMISSION_ENCRYPT_READ = 0x04,
} bluetooth_gatt_att_request_tyep_t;
/**
+ * Proximity Property Type
+ */
+typedef enum {
+ BLUETOOTH_PXP_PROPERTY_LLS = 0x01, /* Link Loss Alert Proeprty */
+ BLUETOOTH_PXP_PROPERTY_IAS = 0x02, /* Immediate Alert Proeprty */
+ BLUETOOTH_PXP_PROPERTY_TX_POWER = 0x04, /* TX Power */
+} bluetooth_pxp_poperty_t;
+
+/**
+ * TDS transport Type
+ */
+typedef enum {
+ BLUETOOTH_TDS_TRANSPORT_BT = 0x01, /* Transport type BR-EDR */
+ BLUETOOTH_TDS_TRANSPORT_CUSTOM, /* Transport type custom */
+ /* ... */
+ BLUETOOTH_TDS_TRANSPORT_INVALID
+} bluetooth_tds_transport_t;
+
+/**
+ * TDS transport state
+ */
+typedef enum {
+ BLUETOOTH_TDS_TRANSPORT_STATE_OFF = 0,
+ BLUETOOTH_TDS_TRANSPORT_STATE_ON,
+ BLUETOOTH_TDS_TRANSPORT_STATE_UNAVAILABLE,
+ BLUETOOTH_TDS_TRANSPORT_STATE_RESERVED
+} bluetooth_tds_transport_state_t;
+
+/**
+* TDS data
+*/
+typedef struct {
+ int length;
+ guint8 data[BLUETOOTH_TDS_DATA_LENGTH_MAX];
+} bluetooth_tds_data_t;
+
+/**
+* TDS activation request
+*/
+typedef struct {
+ bluetooth_device_address_t rem_addr;
+ bluetooth_tds_transport_t transport;
+ bluetooth_tds_data_t tds_data;
+} bluetooth_tds_activation_req_t;
+
+/**
+* TDS Control Point data
+*/
+typedef struct {
+ int length; /**< Control point data length */
+ guint8 data[BLUETOOTH_TDS_CONTROL_POINT_PARAM_LENGTH_MAX]; /**< Control pint param data */
+} bluetooth_control_point_data_t;
+
+/**
+* TDS Indication Response data
+*/
+typedef struct {
+ bluetooth_device_address_t rem_addr; /**< Device address */
+ bluetooth_control_point_data_t tds_data; /**< TDS Control Point Indication params */
+} bluetooth_tds_indication_res_t;
+
+/**
+* Structure to hold the TDS Complete data information which is read from remote TDS provider
+*/
+typedef struct {
+ bluetooth_device_address_t device_address; /**< Device address */
+ int data_length; /**< Data length */
+ char *data; /**< Complete Transport Specific data */
+} bluetooth_tds_transport_data_info_t;
+
+/**
* Advertising parameters
*/
typedef struct {
LE Connection Update
*/
typedef struct {
- guint16 interval_min;
- guint16 interval_max;
+ float interval_min;
+ float interval_max;
guint16 latency;
guint16 timeout;
} bluetooth_le_connection_param_t;
char *message;
} bluetooth_vendor_dep_at_cmd_t;
+/**
+ * Transfer Types
+ */
+typedef enum {
+ BLUETOOTH_TRANSFER_INBOUND, /**< Inbound Transfer Type */
+ BLUETOOTH_TRANSFER_OUTBOUND, /**< Outbound Transfer Type */
+} bluetooth_opp_transfer_type_t;
+
+typedef struct {
+ gint event;
+ gint value;
+} bluetooth_hf_ciev_device_event_t;
#define BLUETOOTH_EVENT_BASE ((int)(0x0000)) /**< No event */
#define BLUETOOTH_EVENT_GAP_BASE ((int)(BLUETOOTH_EVENT_BASE + 0x0010))
/**< Base ID for AVRCP events */
#define BLUETOOTH_EVENT_IPSP_BASE ((int)(BLUETOOTH_EVENT_AVRCP_CONTROL_BASE + 0x0020))
/**< Base ID for IPSP events */
+#define BLUETOOTH_EVENT_MAP_BASE ((int)(BLUETOOTH_EVENT_IPSP_BASE + 0x0020))
+ /**< Base ID for MAP events */
/**
* Bluetooth event type
BLUETOOTH_EVENT_DISCOVERY_FINISHED, /**< Bluetooth event discovery finished */
BLUETOOTH_EVENT_REMOTE_DEVICE_FOUND, /**< Bluetooth event remote deice found */
BLUETOOTH_EVENT_LE_DISCOVERY_STARTED, /**< Bluetooth event LE discovery started */
- BLUETOOTH_EVENT_LE_DISCOVERY_FINISHED, /**< Bluetooth event LE discovery finished */
+ BLUETOOTH_EVENT_LE_DISCOVERY_FINISHED, /**< Bluetooth event LE discovery finished */
BLUETOOTH_EVENT_REMOTE_LE_DEVICE_FOUND, /**< Bluetooth event remote deice found (LE dev) */
BLUETOOTH_EVENT_REMOTE_DEVICE_NAME_UPDATED,/**< Bluetooth event remote device name updated*/
BLUETOOTH_EVENT_BONDING_FINISHED, /**< Bluetooth event bonding completed */
BLUETOOTH_EVENT_RSSI_ENABLED, /**< Bluetooth event RSSI monitoring enabled */
BLUETOOTH_EVENT_RSSI_ALERT, /**< Bluetooth event RSSI Alert */
BLUETOOTH_EVENT_RAW_RSSI, /**< Bluetooth event Raw RSSI */
+ BLUETOOTH_EVENT_SUPPORTED_PROFILE_TRUSTED, /**< Bluetooth event Supported Profile Trusted */
+ BLUETOOTH_EVENT_PASSKEY_NOTIFICATION, /**< Bluetooth event passkey notification */
BLUETOOTH_EVENT_SERVICE_SEARCHED = BLUETOOTH_EVENT_SDP_BASE,
/**< Bluetooth event serice search base id */
BLUETOOTH_EVENT_OPC_CONNECTED = BLUETOOTH_EVENT_OPC_BASE,
/* OPC Connected event */
- BLUETOOTH_EVENT_OPC_DISCONNECTED, /* OPC Disonnected event */
+ BLUETOOTH_EVENT_OPC_DISCONNECTED, /* OPC Disonnected event */
BLUETOOTH_EVENT_OPC_TRANSFER_STARTED, /* OPC Transfer started event */
BLUETOOTH_EVENT_OPC_TRANSFER_PROGRESS, /* OPC Transfer progress event */
BLUETOOTH_EVENT_OPC_TRANSFER_COMPLETE, /* OPC Transfer Complete event */
+ BLUETOOTH_EVENT_MAP_CONNECTED = BLUETOOTH_EVENT_MAP_BASE,
+ BLUETOOTH_EVENT_MAP_DISCONNECTED,
+ /*
+ BLUETOOTH_EVENT_MAP_SET_FOLDER_COMPLETE,
+ BLUETOOTH_EVENT_MAP_SET_FOLDER_INVALID_ARGUMENTS,
+ BLUETOOTH_EVENT_MAP_SET_FOLDER_FAILED,
+ BLUETOOTH_EVENT_MAP_UPDATE_INBOX_COMPLETE,
+ BLUETOOTH_EVENT_MAP_UPDATE_INBOX_FAILED,
+ */
+ BLUETOOTH_EVENT_MAP_LIST_FOLDERS_COMPLETE,
+ BLUETOOTH_EVENT_MAP_LIST_FOLDERS_INVALID_ARGUMENTS,
+ BLUETOOTH_EVENT_MAP_LIST_FOLDERS_FAILED,
+ BLUETOOTH_EVENT_MAP_LIST_MESSAGES_COMPLETE,
+ BLUETOOTH_EVENT_MAP_LIST_MESSAGES_INVALID_ARGUMENTS,
+ BLUETOOTH_EVENT_MAP_LIST_MESSAGES_FAILED,
+ BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_COMPLETE,
+ BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_INVALID_ARGUMENTS,
+ BLUETOOTH_EVENT_MAP_PUSH_MESSAGE_FAILED,
+ BLUETOOTH_EVENT_MAP_GET_MESSAGE_COMPLETE,
+ BLUETOOTH_EVENT_MAP_GET_MESSAGE_INVALID_ARGUMENTS,
+ BLUETOOTH_EVENT_MAP_GET_MESSAGE_FAILED,
+ BLUETOOTH_EVENT_MAP_LIST_FILTER_FIELD_COMPLETE,
+
BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_AUTHORIZE = BLUETOOTH_EVENT_OBEX_SERVER_BASE,
/* Obex server authorize event*/
BLUETOOTH_EVENT_OBEX_SERVER_TRANSFER_STARTED, /* Obex Server transfer started event*/
BLUETOOTH_EVENT_GATT_SVC_CHAR_DESC_DISCOVERED, /**<Gatt Char Descriptors Discovered Event*/
BLUETOOTH_EVENT_GATT_CONNECTED,/**<Gatt connected event */
BLUETOOTH_EVENT_GATT_DISCONNECTED, /**<Gatt Disconnected event */
+ BLUETOOTH_EVENT_GATT_ATT_MTU_CHANGED, /**<Attribute protocol MTU changed event */
BLUETOOTH_EVENT_GATT_SERVER_CHARACTERISTIC_VALUE_CHANGED, /**<Gatt Char write callback event */
BLUETOOTH_EVENT_GATT_SERVER_READ_REQUESTED, /** <GATT Characteristic/Descriptor Read Request event */
BLUETOOTH_EVENT_GATT_SERVER_VALUE_CHANGED, /** <GATT Characteristic/Descriptor Value change event */
BLUETOOTH_EVENT_GATT_SERVER_NOTIFICATION_STATE_CHANGED, /** <GATT Characteristic Notification change event */
BLUETOOTH_EVENT_GATT_SERVER_NOTIFICATION_COMPLETED, /** <GATT Characteristic Notification or Indication completed event */
+ BLUETOOTH_EVENT_GATT_CLIENT_SERVICE_CHANGED, /** <GATT Client service change event */
BLUETOOTH_EVENT_AG_CONNECTED = BLUETOOTH_EVENT_AUDIO_BASE, /**<AG service connected event*/
BLUETOOTH_EVENT_AG_DISCONNECTED, /**<AG service disconnected event*/
BLUETOOTH_EVENT_HF_VOICE_RECOGNITION_DISABLED,
BLUETOOTH_EVENT_HF_VOLUME_SPEAKER,
BLUETOOTH_EVENT_HF_VENDOR_DEP_CMD,
+ BLUETOOTH_EVENT_HF_CALLSETUP_INCOMING,
+ BLUETOOTH_EVENT_HF_CALL_FAILED_TO_DIAL,
+ BLUETOOTH_EVENT_HF_CALL_IDLE,
+ BLUETOOTH_EVENT_HF_CALLSETUP_DIALING,
+ BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING,
+ BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED,
BLUETOOTH_HID_CONNECTED = BLUETOOTH_EVENT_HID_BASE, /**< Input connectd event*/
BLUETOOTH_HID_DISCONNECTED, /**< Input disconnectd event*/
BLUETOOTH_EVENT_IPSP_INIT_STATE_CHANGED = BLUETOOTH_EVENT_IPSP_BASE, /**<IPSP init event*/
BLUETOOTH_EVENT_IPSP_CONNECTED, /**< IPSP connected event */
BLUETOOTH_EVENT_IPSP_DISCONNECTED, /**< IPSP Disconnected event */
- BLUETOOTH_EVENT_IPSP_BT_INTERFACE_INFO, /** IPSP BT Interface Info after connection */
+ BLUETOOTH_EVENT_IPSP_INTERFACE_INFO, /** IPSP BT Interface Info after connection */
BLUETOOTH_EVENT_LE_DATA_LENGTH_CHANGED, /** LE data length values changed */
+ BLUETOOTH_EVENT_PXP_PROPERTY_CHANGED, /** Proximity property changed */
+ BLUETOOTH_EVENT_TDS_ACTIVATION_REQUESTED, /** TDS activation requested */
+ BLUETOOTH_EVENT_TDS_TRANSPORT_DATA_RECEIVED, /** TDS Transport Data received */
+ BLUETOOTH_EVENT_TDS_ACTIVATION_RESULT, /** TDS Activation Result */
+ BLUETOOTH_EVENT_TDS_CONTROL_POINT_ENABLED, /** TDS CCCD enabled event */
+ BLUETOOTH_EVENT_TDS_ACTIVATION_INDICATION, /** TDS Activation Indication from Provider */
+
+ BLUETOOTH_EVENT_OTP_SERVER_STATE_CHANGED, /* OTP Server Status **/
} bluetooth_event_type_t;
/**
BLUETOOTH_DUN_PROFILE_UUID = ((unsigned short)0x1103), /**<DUN*/
BLUETOOTH_OBEX_IR_MC_SYNC_SERVICE_UUID = ((unsigned short)0x1104), /**<OBEX IR MC SYNC*/
BLUETOOTH_OBEX_OBJECT_PUSH_SERVICE_UUID = ((unsigned short)0x1105), /**<OPP*/
+ BLUETOOTH_OBEX_MESSAGE_ACCESS_SERVICE_UUID = ((unsigned short)0x1134), /**<MAP*/
BLUETOOTH_OBEX_FILE_TRANSFER_UUID = ((unsigned short)0x1106), /**<FTP*/
BLUETOOTH_IRMC_SYNC_COMMAND_UUID = ((unsigned short)0x1107), /**<IRMC SYNC COMMAND*/
BLUETOOTH_HS_PROFILE_UUID = ((unsigned short)0x1108), /**<HS*/
BLUETOOTH_GENERIC_FILE_TRANSFER_UUID = ((unsigned short)0x1202),/**<GENERIC FILE TRANSFER*/
BLUETOOTH_GENERIC_AUDIO_UUID = ((unsigned short)0x1203), /**<GENERIC AUDIO*/
BLUETOOTH_GENERIC_TELEPHONY_UUID = ((unsigned short)0x1204), /**<GENERIC TELEPHONY*/
- BLUETOOTH_VIDEO_SOURCE_UUID = ((unsigned short)0x1303), /**<VEDIO SOURCE*/
+ BLUETOOTH_VIDEO_SOURCE_UUID = ((unsigned short)0x1303), /**<VEDIO SOURCE*/
BLUETOOTH_VIDEO_SINK_UUID = ((unsigned short)0x1304), /**<VEDIO SINK*/
BLUETOOTH_VIDEO_DISTRIBUTION_UUID = ((unsigned short)0x1305), /**<VEDIO DISTRIBUTION*/
BLUETOOTH_HDP_UUID = ((unsigned short)0x1400), /**<HDP*/
gboolean paired; /**< paired flag */
bluetooth_connected_link_t connected; /**< connected link type */
gboolean trust; /**< trust flag */
+ gboolean is_alias_set; /** is device alias set flag**/
bluetooth_manufacturer_data_t manufacturer_data; /**< manafacturer specific class */
} bluetooth_device_info_t;
bluetooth_le_advertising_data_t manufacturer_data_mask; /**< manufacturer data mask */
} bluetooth_le_scan_filter_t;
+typedef struct {
+ bluetooth_device_address_t device_address; /**< device address */
+ unsigned int mtu; /** < MTU set for the ATT connection */
+ unsigned int status; /** < status of the MTU exchange */
+} bluetooth_le_att_mtu_info_t;
+
/**
* structure to hold the paired device information
*/
* Stucture to OPP client transfer information
*/
typedef struct {
+ char *device_addr;
char *filename;
unsigned long size;
int percentage;
} bt_opc_transfer_info_t;
+/* TODO: MAP client structures, see above */
+/**
+ * Stucture to Map filter fields
+ */
+typedef struct {
+ char **fields;
+ int size;
+} bt_map_list_filter_fields_info_t;
+
/* Obex Server transfer type */
#define TRANSFER_PUT "PUT"
#define TRANSFER_GET "GET"
typedef struct {
char *filename;
int length;
+ char *address;
+ char *name;
} bt_obex_server_authorize_into_t;
/**
unsigned long file_size;
int percentage;
bt_obex_server_type_t server_type;
+ char *address;
+ unsigned char *contact_auth_info;
} bt_obex_server_transfer_info_t;
/**
+ * Stucture to OPP/FTP server connection/disconnection information
+ */
+typedef struct {
+ char *address;
+ char *device_name;
+ int transfer_id;
+} bt_obex_server_connection_info_t;
+
+
+/**
* Stucture to OOB data
*/
unsigned char randomizer[BLUETOOTH_OOB_DATA_LENGTH];
unsigned int hash_len;
unsigned int randomizer_len;
+
+ unsigned char hash256[BLUETOOTH_OOB_DATA_LENGTH];
+ unsigned char randomizer256[BLUETOOTH_OOB_DATA_LENGTH];
+ unsigned int hash256_len;
+ unsigned int randomizer256_len;
} bt_oob_data_t;
/**
char *service_handle;
char *address;
guint16 offset;
- guint8 req_id;
+ guint req_id;
} bt_gatt_read_req_t;
/**
char *att_handle;
char *service_handle;
char *address;
- guint8 req_id;
+ guint req_id;
+ gboolean response_needed;
guint16 offset;
guint8 *att_value;
guint32 val_len;
} bt_gatt_value_change_t;
+typedef struct {
+ bluetooth_device_address_t device_addr;
+ char *svc_path;
+ bluetooth_gatt_service_change_type_t change_type;
+} bt_gatt_service_change_t;
+
/**
* Structure to GATT characteristc Notification change
*/
char *service_handle;
char *address;
gboolean complete;
- } bt_gatt_indicate_confirm_t;
+} bt_gatt_indicate_confirm_t;
/**
* Structure to RSSI Signal Strength Alert
int high_threshold;
} bt_rssi_threshold_t;
+
+/**
+ * Structure for Suppoted Profiles and Trusted Profiles
+ */
+typedef struct {
+ char *address;
+ int profile;
+ gboolean supported;
+ gboolean trusted;
+} bt_supported_profile_trusted_t;
+
/**
* Structure for PBAP Folder Parameters
*/
} bt_hf_call_list_s;
/**
- * Structure for LE data length change params
+ * Profile types
+ */
+typedef enum {
+ TRUSTED_PROFILE_PBAP = 1,
+ TRUSTED_PROFILE_MAP,
+ TRUSTED_PROFILE_SAP,
+ TRUSTED_PROFILE_ALL = 0xFFFFFFFF,
+} bluetooth_trusted_profile_t;
+
+/**
+ * Restricted Profile types
*/
+typedef enum {
+ RESTRICTED_PROFILE_HFP_HS = 1,
+ RESTRICTED_PROFILE_A2DP,
+} bluetooth_restricted_profile_t;
+/**
+ * Structure for LE data length change params
+ */
typedef struct {
bluetooth_device_address_t device_address;
guint16 max_tx_octets;
guint16 max_rx_time;
} bt_le_data_length_params_t;
+/**
+ * Structure for proximity property change params
+ */
+typedef struct {
+ bluetooth_device_address_t device_address;
+ int role;
+ int service_type;
+ int alert_lvl;
+} bt_pxp_property_changed_params_t;
/**
* @brief DPM BT allowance state
* @see
*/
- typedef enum {
- BLUETOOTH_DPM_ERROR = -1, /**< bluetooth allowance error */
- BLUETOOTH_DPM_BT_ALLOWED, /**< bluetooth allowance allowed */
- BLUETOOTH_DPM_HANDSFREE_ONLY, /**< bluetooth allowance handsfree only */
- BLUETOOTH_DPM_BT_RESTRICTED, /**< bluetooth allowance restricted */
- } bt_dpm_allow_t;
+typedef enum {
+ BLUETOOTH_DPM_ERROR = -1, /**< bluetooth allowance error */
+ BLUETOOTH_DPM_BT_ALLOWED, /**< bluetooth allowance allowed */
+ BLUETOOTH_DPM_HANDSFREE_ONLY, /**< bluetooth allowance handsfree only */
+ BLUETOOTH_DPM_BT_RESTRICTED, /**< bluetooth allowance restricted */
+} bt_dpm_allow_t;
/**
* @brief DPM API result
typedef struct {
bluetooth_device_address_t btaddr;
char if_name[16];
-} bt_ipsp_interface_info_t;
+} bt_ipsp_connection_info_t;
+
+typedef struct {
+ char* session_path;
+ char* remote_address;
+} bt_map_client_session_info_s;
+
+typedef char* bt_map_client_message_object_t;
+
+typedef struct {
+ int16_t offset;
+ int16_t max_count;
+} bt_map_client_list_folders_filter_t;
+
+typedef struct {
+ int16_t offset;
+ int16_t max_count;
+ int8_t subject_length;
+ char *fields;
+ char *types;
+ char *period_begin;
+ char *period_end;
+ int is_read;
+ char *recipient;
+ char *sender;
+ int is_priority;
+} bt_map_client_list_messages_filter_t;
+
+typedef struct {
+ bt_map_client_message_object_t message_object;
+ char *folder;
+ char *subject;
+ char *timestamp;
+ char *sender;
+ char *sender_address;
+ char *reply_to;
+ char *recipient;
+ char *recipient_address;
+ char *type;
+ int64_t size;
+ int is_text;
+ char *status;
+ int64_t attachment_size;
+ int is_priority;
+ int is_read;
+ int is_sent;
+ int is_protected;
+} bt_map_client_message_item_t;
+
+typedef struct {
+ int is_transparent;
+ int is_retry;
+ char *charset;
+} bt_map_client_push_message_args_t;
+
+typedef struct {
+ char *folder;
+ char *subject;
+ char *timestamp;
+ char *sender;
+ char *sender_address;
+ char *reply_to;
+ char *recipient;
+ char *recipient_address;
+ char *type;
+ int64_t size;
+ char *status;
+ int is_priority;
+ int is_read;
+ int is_deleted;
+ int is_sent;
+ int is_protected;
+} bt_map_client_message_t;
+
+typedef struct {
+ char **names; // holding %size null-terminated folder names
+ int64_t size;
+} bt_map_client_folders_s;
+
+typedef struct {
+ bt_map_client_message_item_t *message_items;
+ int64_t size;
+} bt_map_client_message_items_s;
+
+typedef struct {
+ const char* target_file;
+ void* user_data;
+} bt_get_message_callback_data;
/**
* Callback pointer type
{
GMainLoop *main_loop = NULL;
int ret = 0;
+ g_type_init();
main_loop = g_main_loop_new(NULL, FALSE);
ret = bluetooth_register_callback(bt_event_callback, (void*)main_loop);
if (ret >= BLUETOOTH_ERROR_NONE)
{
GMainLoop *main_loop = NULL;
int ret = 0;
+ g_type_init();
main_loop = g_main_loop_new(NULL, FALSE);
ret = bluetooth_register_callback(bt_event_callback, (void*)main_loop);
if (ret >= BLUETOOTH_ERROR_NONE)
bluetooth_connected_link_t *connected_link);
/**
+ * @fn int bluetooth_set_profile_trusted(const bluetooth_device_address_t *device_address, int profile, int trust)
+ * @brief Sets a profile trusted for a device
+ *
+ * This function is used to Set a profile as trusted for a device
+ *
+ * This function is a synchronous call.
+ *
+ * @param[in] device_address a device address of remote bluetooth device
+ * @param[in] profile profile which is to be set as trusted[0-PBAP, 1-MAP, 2-SAP]
+ * @param[in] trust to set as trusted or untrusted[1-trusted 0-untrusted]
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is not enabled \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Bluetooth name parameter is incorrect \n
+ * BLUETOOTH_ERROR_INTERNAL - The dbus method call is fail \n
+ *
+ * @remark None
+ */
+int bluetooth_set_profile_trusted(
+ const bluetooth_device_address_t *device_address,
+ int profile, int trust);
+
+/**
+ * @fn int bluetooth_get_profile_trusted(const bluetooth_device_address_t *device_address, int profile, int *trust)
+ * @brief Gets a profile is trusted for a device
+ *
+ * This function is used to Get a profile is trusted or not for a device
+ *
+ * This function is a synchronous call.
+ *
+ * @param[in] device_address a device address of remote bluetooth device
+ * @param[in] profile profile whose trust status is needed[0-PBAP, 1-MAP, 2-SAP]
+ * @param[out] trust profile is set as trusted or untrusted[1-trusted 0-untrusted]
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is not enabled \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Bluetooth name parameter is incorrect \n
+ * BLUETOOTH_ERROR_INTERNAL - The dbus method call is fail \n
+ *
+ * @remark None
+ */
+int bluetooth_get_profile_trusted(
+ const bluetooth_device_address_t *device_address,
+ int profile, int *trust);
+
+/**
+ * @fn int bluetooth_set_profile_restricted(const bluetooth_device_address_t *device_address, int profile, int restricted)
+ * @brief Sets a profile restricted connection for a device
+ *
+ * This function is used to Set a profile as restricted for a device
+ *
+ * This function is a synchronous call.
+ *
+ * @param[in] device_address a device address of remote bluetooth device
+ * @param[in] profile profile which is to be set as restricted[1-HFP_HS, 2-A2DP]
+ * @param[in] restricted to set as restricted or not[1-restricted 0-permitted]
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is not enabled \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Bluetooth name parameter is incorrect \n
+ * BLUETOOTH_ERROR_INTERNAL - The dbus method call is fail \n
+ *
+ * @remark None
+ */
+int bluetooth_set_profile_restricted(
+ const bluetooth_device_address_t *device_address,
+ int profile, int restricted);
+
+/**
+ * @fn int bluetooth_get_profile_restricted(const bluetooth_device_address_t *device_address, int profile, int *restricted)
+ * @brief Gets a restricted connection state
+ *
+ * This function is used to Get a profile is restricted or not for a device
+ *
+ * This function is a synchronous call.
+ *
+ * @param[in] device_address a device address of remote bluetooth device
+ * @param[in] profile profile whose restricted status is needed[1-HFP_HS, 2-A2DP]
+ * @param[out] restricted profile is set as restricted or not[1-restricted 0-permitted]
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is not enabled \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Bluetooth name parameter is incorrect \n
+ * BLUETOOTH_ERROR_INTERNAL - The dbus method call is fail \n
+ *
+ * @remark None
+ */
+int bluetooth_get_profile_restricted(
+ const bluetooth_device_address_t *device_address,
+ int profile, int *restricted);
+
+/**
* @fn int bluetooth_get_discoverable_mode(bluetooth_discoverable_mode_t *discoverable_mode_ptr)
* @brief Get the visibility mode
*
*/
gboolean bluetooth_is_le_scanning(void);
+gboolean bluetooth_is_scan_filter_supported(void);
+
+/**
+ * @fn int bluetooth_force_hcidump(int timeout)
+ * @brief Enable /disable force-hcidump
+ *
+ * This function control force-hcidump.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal IPC error \n
+ *
+ * @param[in] start To enable or disable force-hcidump[TRUE / FALSE]
+ *
+ *
+ * @remark None
+ */
+int bluetooth_force_hcidump(int timeout);
+
/**
* @fn int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter, int *slot_id)
* @brief Register scan filter.
*/
int bluetooth_get_bonded_device_list(GPtrArray **dev_list);
+int bluetooth_get_profile_connected_device_list(
+ const char *profile_uuid, GPtrArray **addr_list);
+
/**
* @fn int bluetooth_get_bonded_device(const bluetooth_device_address_t *device_address,
* bluetooth_device_info_t *dev_info)
int bluetooth_get_bonded_device(const bluetooth_device_address_t *device_address,
bluetooth_device_info_t *dev_info);
+
+/**
+ * @fn int bluetooth_get_is_alias_set(const bluetooth_device_address_t *device_address,
+ * gboolean *is_alias_set)
+ * @brief Get is_alias_set property of device
+ *
+ * This API gets is_alias_set property of a bonded device.
+ *
+ * This function is a synchronous call.
+ * Information for is_alias_set property can be obtained only when result code is BLUETOOTH_ERROR_NONE.
+ * If not,there is no valid information in the is_alias_set.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_NOT_SUPPORT - Opreation not supported \n
+ * @remark None
+ @code
+ int ret = 0;
+ gboolean alias_set;
+ bluetooth_device_address_t device_address = {{0x00,0x1C,0x43,0x2B,0x1A,0xE5}};
+
+ ret = bluetooth_get_is_alias_set(&device_address, &alias_set);
+ @endcode
+ */
+int bluetooth_get_is_alias_set(const bluetooth_device_address_t *device_address,
+ gboolean *is_alias_set);
+
/**
* @fn int bluetooth_set_alias(const bluetooth_device_address_t *device_address, const char *alias)
* @brief set alias for bonded device
*
* @exception None
* @remark None
- * @see bluetooth_rfcomm_reject_connection
+ * @see bluetooth_rfcomm_reject_connection
*/
int bluetooth_rfcomm_accept_connection(int server_fd);
*
* @exception None
* @remark None
- * @see bluetooth_rfcomm_accept_connection
+ * @see bluetooth_rfcomm_accept_connection
*/
int bluetooth_rfcomm_reject_connection(int server_fd);
* should be HDP_QOS_ANY.
* @param[out] app_handle The application handler against corresponding service
* @remark None
- * @see bluetooth_hdp_deactivate
+ * @see bluetooth_hdp_deactivate
*/
int bluetooth_hdp_activate(unsigned short data_type,
bt_hdp_role_type_t role,
* @exception None
* @param[in] app_handle The application handler against corresponding service
* @remark None
- * @see bluetooth_hdp_deactivate
+ * @see bluetooth_hdp_deactivate
*/
int bluetooth_hdp_deactivate(const char *app_handle);
* @param[in] buffer The pdu buffer.
* @param[in] size Size of the buffer.
* @remark None
- * @see bluetooth_hdp_connect
+ * @see bluetooth_hdp_connect
*/
int bluetooth_hdp_send_data(unsigned int channel_id,
const char *buffer, unsigned int size);
* @param[in] device_address The remote device Bd address.
*
* @remark None
- * @see bluetooth_hdp_disconnect
+ * @see bluetooth_hdp_disconnect
*/
int bluetooth_hdp_connect(const char *app_handle,
bt_hdp_qos_type_t channel_type,
* @param[in] device_address The remote device Bd address.
*
* @remark None
- * @see bluetooth_hdp_connect
+ * @see bluetooth_hdp_connect
*/
int bluetooth_hdp_disconnect(unsigned int channel_id,
const bluetooth_device_address_t *device_address);
* @exception None
*
* @remark None
- * @see bluetooth_opc_deinit
+ * @see bluetooth_opc_deinit
*/
int bluetooth_opc_init(void);
* @exception None
*
* @remark None
- * @see bluetooth_opc_init
+ * @see bluetooth_opc_init
*/
- int bluetooth_opc_deinit(void);
+int bluetooth_opc_deinit(void);
/**
* @fn int bluetooth_opc_push_files(bluetooth_device_address_t *remote_address,
* @param[in] file_name_array Array of filepaths to be sent.
*
* @remark None
- * @see bluetooth_opc_cancel_push
+ * @see bluetooth_opc_cancel_push
*/
int bluetooth_opc_push_files(bluetooth_device_address_t *remote_address,
- char **file_name_array);
+ char **file_name_array);
/**
* @fn int bluetooth_opc_cancel_push(void)
* @exception None
*
* @remark None
- * @see bluetooth_opc_push_files
+ * @see bluetooth_opc_push_files
*/
int bluetooth_opc_cancel_push(void);
* @exception None
*
* @remark None
- * @see None
+ * @see None
*/
gboolean bluetooth_opc_session_is_exist(void);
int bluetooth_opc_is_sending(gboolean *is_sending);
/**
+ * @fn int bluetooth_opp_get_transfer_progress(bluetooth_opp_transfer_type_t transfer_type,
+ int transfer_id, unsigned char *progress)
+ * @brief Gets the percentage progress for ongoing transfers.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Not enabled \n
+ * BLUETOOTH_ERROR_NOT_FOUND - Not found \n
+ *
+ * @exception None
+ * @param[in] transfer_type Transfer Type: (@c BLUETOOTH_TRANSFER_INBOUND = receiving , @c BLUETOOTH_TRANSFER_OUTBOUND = sending)
+ * @param[in] transfer_id Transfer ID
+ * @param[out] progress Percentage Progress
+ * @remark None
+ * @see None
+ */
+int bluetooth_opp_get_transfer_progress(bluetooth_opp_transfer_type_t transfer_type,
+ int transfer_id, unsigned char *progress);
+
+/**
* @fn int bluetooth_obex_server_init(const char *dst_path)
* @brief Initialize OPP and FTP server.
*
* @exception None
* @param[in] dst_path OPS destination file path.
* @remark None
- * @see bluetooth_obex_server_deinit
+ * @see bluetooth_obex_server_deinit
*/
int bluetooth_obex_server_init(const char *dst_path);
* @exception None
*
* @remark None
- * @see bluetooth_obex_server_init
+ * @see bluetooth_obex_server_init
*/
int bluetooth_obex_server_deinit(void);
* @exception None
* @param[in] dst_path OPS destination file path.
* @remark None
- * @see bluetooth_obex_server_deinit_without_agent
+ * @see bluetooth_obex_server_deinit_without_agent
*/
int bluetooth_obex_server_init_without_agent(const char *dst_path);
* @exception None
*
* @remark None
- * @see bluetooth_obex_server_init_without_agent
+ * @see bluetooth_obex_server_init_without_agent
*/
int bluetooth_obex_server_deinit_without_agent(void);
*
* @exception None
* @remark None
- * @see bluetooth_obex_server_reject_authorize
+ * @see bluetooth_obex_server_reject_authorize
*/
int bluetooth_obex_server_accept_connection(void);
*
* @exception None
* @remark None
- * @see bluetooth_obex_server_reject_authorize
+ * @see bluetooth_obex_server_reject_authorize
*/
int bluetooth_obex_server_reject_connection(void);
* @param[in] filename Authorized filename.
* @remark None
- * @see bluetooth_obex_server_reject_authorize
+ * @see bluetooth_obex_server_reject_authorize
*/
int bluetooth_obex_server_accept_authorize(const char *filename);
* @exception None
* @remark None
- * @see bluetooth_obex_server_accept_authorize
+ * @see bluetooth_obex_server_accept_authorize
*/
int bluetooth_obex_server_reject_authorize(void);
* @param[in] dst_path OPS destination file path.
* @remark None
- * @see None
+ * @see None
*/
int bluetooth_obex_server_set_destination_path(const char *dst_path);
* @param[in] root FTS root folder.
* @remark None
- * @see None
+ * @see None
*/
int bluetooth_obex_server_set_root(const char *root);
* @param[in] transfer_id transfer ID
* @remark None
- * @see None
+ * @see None
*/
int bluetooth_obex_server_cancel_transfer(int transfer_id);
* @exception None
*
* @remark None
- * @see None
+ * @see None
*/
int bluetooth_obex_server_cancel_all_transfers(void);
* @param[out] is_receiving The receiving status: (@c TRUE = in receiving , @c false = not in receiving)
*
* @remark None
- * @see None
+ * @see None
*/
int bluetooth_obex_server_is_receiving(gboolean *is_receiving);
/**
- * @fn int bluetooth_oob_read_local_data(bt_oob_data_t *local_oob_data)
- * @brief Read the local Hash and Randmizer.
+ * @fn int bluetooth_map_client_init(void)
+ * @brief Initialize MAP client.
*
* This function is a synchronous call.
+ * No event corresponding to this api
*
* @return BLUETOOTH_ERROR_NONE - Success \n
- * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_NO_RESOURCES - Not resource available \n
+ * BLUETOOTH_ERROR_ACCESS_DENIED -Memory allocation failed \n
*
- * @exception None
- * @param[in] None.
- * @param[out] local_oob_data - Pointer to the local OOB data
+ * @exception None
*
- * @remark None
- * @see None
+ * @remark None
+ * @see bluetooth_map_client_deinit
*/
+int bluetooth_map_client_init(void);
-int bluetooth_oob_read_local_data(bt_oob_data_t *local_oob_data);
+int bluetooth_map_client_deinit(void);
+
+int bluetooth_map_client_create_session(bt_map_client_session_info_s *session);
+int bluetooth_map_client_destroy_session(bt_map_client_session_info_s *session);
+
+int bluetooth_map_client_set_folder(bt_map_client_session_info_s *session, const char *name);
+
+int bluetooth_map_client_list_folders(bt_map_client_session_info_s *session,
+ bt_map_client_list_folders_filter_t *filter);
/**
- * @fn int bluetooth_oob_add_remote_data(
- * const bluetooth_device_address_t *remote_device_address,
- * bt_oob_data_t *oob_data)
- * @brief Add/updated the remote device Hash and Randmizer.
+ * @fn int bluetooth_map_client_list_filter_fields(bt_map_session_info_s* session)
+ * @brief Return all available fields that can be used in Fields filter.
*
- * This function is a synchronous call.
- * No event for this api..
+ * This function is a asynchronous call.
*
* @return BLUETOOTH_ERROR_NONE - Success \n
- * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
- *
- * @exception None
- * @param[in] remote_device_address - Remote device address
- * remote_oob_data - Ponter to Hash and Randomizer oob data structure
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Update inbox failed \n
*
- * @remark None
- * @see None
+ * @exception None
+ * @param[in] session Information about session.
+ * @remark None
*/
+int bluetooth_map_client_list_filter_fields(bt_map_client_session_info_s *session);
-int bluetooth_oob_add_remote_data(
+int bluetooth_map_client_list_messages(bt_map_client_session_info_s *session,
+ const char *folder,
+ bt_map_client_list_messages_filter_t *filter);
+
+int bluetooth_map_client_update_inbox(bt_map_client_session_info_s *session);
+
+int bluetooth_map_client_push_message(bt_map_client_session_info_s *session,
+ const char *source_file,
+ const char *folder,
+ bt_map_client_push_message_args_t *args);
+
+int bluetooth_map_client_get_message(bt_map_client_session_info_s *session,
+ const bt_map_client_message_object_t message_object,
+ const char *target_file,
+ bool attachment);
+
+
+/**
+ * @fn int bluetooth_oob_read_local_data(bt_oob_data_t *local_oob_data)
+ * @brief Read the local Hash and Randmizer.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ *
+ * @exception None
+ * @param[in] None.
+ * @param[out] local_oob_data - Pointer to the local OOB data
+ *
+ * @remark None
+ * @see None
+ */
+
+int bluetooth_oob_read_local_data(bt_oob_data_t *local_oob_data);
+
+
+/**
+ * @fn int bluetooth_oob_add_remote_data(
+ * const bluetooth_device_address_t *remote_device_address,
+ * bt_oob_data_t *oob_data)
+ * @brief Add/updated the remote device Hash and Randmizer.
+ *
+ * This function is a synchronous call.
+ * No event for this api..
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ *
+ * @exception None
+ * @param[in] remote_device_address - Remote device address
+ * remote_oob_data - Ponter to Hash and Randomizer oob data structure
+ *
+ * @remark None
+ * @see None
+ */
+
+int bluetooth_oob_add_remote_data(
const bluetooth_device_address_t *remote_device_address,
bt_oob_data_t *remote_oob_data);
* @param[in] remote_device_address - Remote device address
*
* @remark None
- * @see None
+ * @see None
*/
int bluetooth_oob_remove_remote_data(
*/
int bluetooth_gatt_discover_service_characteristics(const char *service_handle);
+int bluetooth_gatt_set_service_change_watcher(
+ const bluetooth_device_address_t *address, gboolean enable);
+
/**
* @fn int bluetooth_gatt_get_service_property(const char *service_handle,
* bt_gatt_service_property_t *service);
* @param[in] service_handle - Handle for remote service.
*
* @remark None
- * @see None
+ * @see None
*/
int bluetooth_gatt_watch_characteristics(const char *service_handle);
* @remark None
* @see None
*/
- int bluetooth_gatt_get_service_from_uuid(bluetooth_device_address_t *address,
+int bluetooth_gatt_get_service_from_uuid(bluetooth_device_address_t *address,
const char *service_uuid,
bt_gatt_service_property_t *service);
* @remark None
* @see bluetooth_gatt_get_characteristics_property()
*/
- int bluetooth_gatt_free_char_property(bt_gatt_char_property_t *char_pty);
+int bluetooth_gatt_free_char_property(bt_gatt_char_property_t *char_pty);
/**
* @fn int bluetooth_gatt_free_desc_property(bt_gatt_char_descriptor_property_t *desc_pty);
* @remark None
* @see bluetooth_gatt_get_char_descriptor_property()
*/
- int bluetooth_gatt_free_desc_property(bt_gatt_char_descriptor_property_t *desc_pty);
-
+int bluetooth_gatt_free_desc_property(bt_gatt_char_descriptor_property_t *desc_pty);
- int bluetooth_connect_le(const bluetooth_device_address_t *device_address, gboolean auto_connect);
+int bluetooth_connect_le(const bluetooth_device_address_t *device_address, gboolean auto_connect);
- int bluetooth_disconnect_le(const bluetooth_device_address_t *device_address);
+int bluetooth_disconnect_le(const bluetooth_device_address_t *device_address);
/**
* @fn int bluetooth_gatt_discover_characteristic_descriptor(const char *characteristic_handle);
* @remark None
* @see None
*/
- int bluetooth_gatt_read_descriptor_value(const char *desc_handle);
+int bluetooth_gatt_read_descriptor_value(const char *desc_handle);
/**
* @fn int bluetooth_gatt_write_descriptor_value(const char *desc_handle,
* @remark None
* @see None
*/
- int bluetooth_gatt_write_descriptor_value(const char *desc_handle,
+int bluetooth_gatt_write_descriptor_value(const char *desc_handle,
const guint8 *value, int length);
/* @fn int bluetooth_gatt_init(void)
*
* This function is a synchronous call.
* @return BLUETOOTH_ERROR_NONE - Success \n
-* BLUETOOTH_ERROR_INTERNAL - Internal Error \n
-* BLUETOOTH_ERROR_INVALID_PARAM -Invalid Parameters \n
-* BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
+* BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+* BLUETOOTH_ERROR_INVALID_PARAM -Invalid Parameters \n
+* BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
*
* @exception None
* @remark Adapter should be enabled
*
* This function is a synchronous call.
* @return BLUETOOTH_ERROR_NONE - Success \n
-* BLUETOOTH_ERROR_INTERNAL - Internal Error \n
-* BLUETOOTH_ERROR_INVALID_PARAM -Invalid Parameters \n
-* BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
+* BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+* BLUETOOTH_ERROR_INVALID_PARAM -Invalid Parameters \n
+* BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
*
* @exception None
* @remark Adapter should be enabled
* BLUETOOTH_ERROR_INVALID_PARAM -Invalid Parameters \n
* BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n
*
-* @exception None
-* @param[in] desc_uuid Gatt descriptor uuid.
-* @param[in] desc_value GATT descriptor value.
-* @param[in] value_length Length of GATT descriptor value.
-* @param[in] permissions descriptor permissions.
-* @param[in] properties GATT descriptor properties.
-* @param[in] char_path characteristics object path of the exported character.
+* @exception None
+* @param[in] desc_uuid Gatt descriptor uuid.
+* @param[in] desc_value GATT descriptor value.
+* @param[in] value_length Length of GATT descriptor value.
+* @param[in] permissions descriptor permissions.
+* @param[in] properties GATT descriptor properties.
+* @param[in] char_path characteristics object path of the exported character.
*
* @remark Adapter should be enabled
* @see bluetooth_gatt_add_service()
*
* @exception None
* @param[in] desc_value GATT descriptor value.
-* @param[in] value_length Length of GATT descriptor value.
-* @param[in] desc_path descriptor path to which the value needs to be added.
+* @param[in] value_length Length of GATT descriptor value.
+* @param[in] desc_path descriptor path to which the value needs to be added.
*
* @remark Adapter should be enabled
* @see bluetooth_gatt_add_service()
/* @fn int bluetooth_gatt_register_service(const char *svc_path)
*
-* @brief Registers the given service path with the bluez gatt server.
+* @brief Registers the given service path with the library.
*
* This function is a synchronous call.
*
* @see bluetooth_bond_device
*/
int bluetooth_le_conn_update(const bluetooth_device_address_t *address,
- const bluetooth_le_connection_param_t *parameters);
-
+ const bluetooth_le_connection_param_t *parameters);
/**
* @fn int bluetooth_enable_le_privacy(gboolean enable_privacy);
int bluetooth_enable_le_privacy(gboolean enable_privacy);
/**
+ * @fn int bluetooth_set_le_static_random_address(gboolean enable);
+ *
+ * @brief Enable/Disable LE static random address.
+ *
+ * This function is used to enable or disable LE static random address.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal IPC error \n
+ *
+ * @exception None
+ * @param[in] enable - The status of LE static random address to be activated/deactivated[True/False].
+ *
+ * @remark None
+ */
+int bluetooth_set_le_static_random_address(gboolean enable);
+
+/**
* @fn int bluetooth_update_le_connection_mode(bluetooth_device_address_t *address,
* bluetooth_le_connection_mode_t mode)
* @brief update connection paramter of LE connection.
bluetooth_le_connection_mode_t mode);
/**
+ * @fn int bluetooth_request_att_mtu(const bluetooth_device_address_t *device_address, guint16 mtu)
+ * @brief Request for new ATT MTU value.
+ *
+ * This function is a asynchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Parameter is not valid \n
+ *
+ * @exception None
+ * @param[in] address - remote device address value.
+ * @param[in] mtu - MTU value to be set.
+ *
+ * @remark None
+ */
+int bluetooth_request_att_mtu(const bluetooth_device_address_t *device_address, unsigned int mtu);
+
+/**
+ * @fn int bluetooth_get_att_mtu(const bluetooth_device_address_t *device_address,
+ * unsigned int *mtu)
+ * @brief Gets the xisting MTU value set for a connection.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Parameter is not valid \n
+ *
+ * @exception None
+ * @param[in] address - remote device address value.
+ * @param[out] mtu - MTU value set for the connection.
+ *
+ * @remark None
+ */
+int bluetooth_get_att_mtu(const bluetooth_device_address_t *device_address,
+ unsigned int *mtu);
+
+/**
+ * @fn int bluetooth_get_device_ida(const bluetooth_device_address_t *device_rpa,
+ * bluetooth_device_address_t *id_address)
+ * @brief Gets the Identity address of remote device.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Parameter is not valid \n
+ *
+ * @exception None
+ * @param[in] device_rpa - remote Resolvable private address.
+ * @param[out] id_address - remote Identity device address value.
+ *
+ * @remark None
+ */
+int bluetooth_get_device_ida(const bluetooth_device_address_t *device_rpa,
+ bluetooth_device_address_t *id_address);
+
+/**
* @fn int bluetooth_le_read_maximum_data_length()
* @brief reads the maximum LE data length supported in the controller.
*
*/
int bluetooth_set_manufacturer_data(const bluetooth_manufacturer_data_t *value);
-#ifdef TIZEN_DPM_VCONF_ENABLE
+int bluetooth_set_passkey_notification(gboolean enable);
+
/**
* @fn int bluetooth_dpm_is_mode_allowed(void);
*
* @remark None
*/
int bluetooth_dpm_is_mode_allowed(void);
-#endif
/**
* @fn int bluetooth_dpm_set_allow_mode(bt_dpm_allow_t value);
* @exception None
* @param[in] None
* @param[out] value - BT Allow value.
- * BLUETOOTH_DPM_ERROR = -1, < bluetooth allowance error
- * BLUETOOTH_DPM_BT_ALLOWED, < bluetooth allowance allowed
- * BLUETOOTH_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
- * BLUETOOTH_DPM_BT_RESTRICTED, < bluetooth allowance restricted
+ * BLUETOOTH_DPM_ERROR = -1, < bluetooth allowance error
+ * BLUETOOTH_DPM_BT_ALLOWED, < bluetooth allowance allowed
+ * BLUETOOTH_DPM_HANDSFREE_ONLY, < bluetooth allowance handsfree only
+ * BLUETOOTH_DPM_BT_RESTRICTED, < bluetooth allowance restricted
*
* @remark None
*/
*
* @exception None
* @param[in] value - State value.
- * BLUETOOTH_DPM_ALLOWED = 0, < DPM Policy status allowed.
+ * BLUETOOTH_DPM_ALLOWED = 0, < DPM Policy status allowed.
* BLUETOOTH_DPM_RESTRICTED = 1, < DPM Policy status restricted.
*
* @remark None
int bluetooth_dpm_get_data_transfer_state(bt_dpm_status_t *value);
/**
+ * @fn int bluetooth_proximity_monitor_set_property(const bluetooth_device_address_t *device_address,
+ * bluetooth_pxp_poperty_t property, int value);
+ *
+ * @brief Sets the Proximity alert level/properties for monitor role.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_NOT_FOUND - Cannot find the proxy\n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ *
+ * @exception None
+ * @param[in] device_address remote device address
+ * @param[in] property proximity profile property
+ * @param[in] value alert level/property value to be set
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_proximity_monitor_set_property(const bluetooth_device_address_t *device_address,
+ bluetooth_pxp_poperty_t property, int value);
+
+/**
+ * @fn int bluetooth_proximity_monitor_get_property(const bluetooth_device_address_t *device_address,
+ * bluetooth_pxp_poperty_t property, int *value);
+ *
+ * @brief Reads the Proximity alert level/properties for monitor role.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_NOT_FOUND - Cannot find the proxy\n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ *
+ * @exception None
+ * @param[in] device_address remote device address
+ * @param[in] property proximity profile property
+ * @param[out] value alert level/property value
+ *
+ * @remark None
+ */
+int bluetooth_proximity_monitor_get_property(const bluetooth_device_address_t *device_address,
+ bluetooth_pxp_poperty_t property, int *value);
+
+/**
+ * @fn int bluetooth_proximity_monitor_get_supported_services(const bluetooth_device_address_t *device_address,
+ * int *services_supported);
+ *
+ * @brief Reads the Proximity Monitor profile supported properties/services.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_NOT_FOUND - Cannot find the proxy\n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ *
+ * @exception None
+ * @param[in] device_address remote device address
+ * @param[out] services_supported proximity profile property/service
+ *
+ * @remark None
+ */
+int bluetooth_proximity_monitor_get_supported_services(const bluetooth_device_address_t *device_address,
+ int *services_supported);
+
+/**
+ * @fn int bluetooth_proximity_reporter_register();
+ *
+ * @brief Register all proximity related services in BlueZ.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_NOT_FOUND - Cannot find the proxy\n
+ *
+ * @exception None
+ *
+ * @remark None
+ */
+int bluetooth_proximity_reporter_register(void);
+
+/**
+ * @fn int bluetooth_proximity_reporter_unregister();
+ *
+ * @brief Unregister all proximity related services in BlueZ.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_NOT_FOUND - Cannot find the proxy\n
+ *
+ * @exception None
+ *
+ * @remark None
+ */
+int bluetooth_proximity_reporter_unregister(void);
+
+/**
+ * @fn int bluetooth_proximity_reporter_get_property(const bluetooth_device_address_t *device_address,
+ * bluetooth_pxp_poperty_t property, int *value);
+ *
+ * @brief Reads the Proximity alert level/properties for reporter role.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_NOT_FOUND - Cannot find the proxy\n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ *
+ * @exception None
+ * @param[in] device_address remote device address
+ * @param[in] property proximity profile property
+ * @param[out] value alert level/property value
+ *
+ * @remark None
+ */
+int bluetooth_proximity_reporter_get_property(const bluetooth_device_address_t *device_address,
+ bluetooth_pxp_poperty_t property, int *value);
+
+/**
+ * @fn int bluetooth_tds_provider_register(void);
+ *
+ * @brief Register Transport Discovery Provider role.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_ALREADY_INITIALIZED - Already done \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Operation failed\n
+ *
+ * @exception None
+ * @param[in] None
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_tds_provider_register(void);
+
+/**
+ * @fn int bluetooth_tds_provider_unregister(void);
+ *
+ * @brief Unregister Transport Discovery Provider role.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_NOT_INITIALIZED - Provider not registered \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Operation failed\n
+ *
+ * @exception None
+ * @param[in] None
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_tds_provider_unregister(void);
+
+/**
+ * @fn int bluetooth_tds_provider_create(int transport, unsigned int handle);
+ *
+ * @brief Create Transport Discovery Provider for a transport.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ * BLUETOOTH_ERROR_NOT_INITIALIZED - Provider not registered \n
+ * BLUETOOTH_ERROR_INTERNAL - Operation failed\n
+ *
+ * @exception None
+ * @param[in] Transport (BT, CUSTOM etc.)
+ * @param[in] Unique handle for TDS provider.
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_tds_provider_create(int transport, unsigned int handle);
+
+/**
+ * @fn int bluetooth_tds_provider_destroy(unsigned int handle);
+ *
+ * @brief Remove previously created Transport Discovery Provider.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ *
+ * @exception None
+ * @param[in] Unique handle for previously created provider.
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_tds_provider_destroy(unsigned int handle);
+
+/**
+ * @fn int bluetooth_set_tds_provider_manuf_data(unsigned char *buf, unsigned int length);
+ *
+ * @brief Set transport block for in advertisement and gatt db.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Operation failed\n
+ *
+ * @exception None
+ * @param[in] Provider specific manufacturer data.
+ * @param[in] Provider specific manufacturer data length.
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_set_tds_provider_manuf_data(unsigned char *buf, unsigned int length);
+
+/**
+ * @fn int bluetooth_set_tds_provider_transport_data(unsigned int tds_handle,
+ * bluetooth_tds_transport_state_t state, unsigned char *buf, unsigned int length);
+ *
+ * @brief Set transport block for in advertisement and gatt db.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Operation failed\n
+ *
+ * @exception None
+ * @param[in] Unique handle for TDS provider.
+ * @param[in] Transport state (On/Off/Not Available).
+ * @param[in] Transport specific data block.
+ * @param[in] Transport specific data block length.
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_set_tds_provider_transport_data(unsigned int tds_handle,
+ bluetooth_tds_transport_state_t state, unsigned char *buf, unsigned int length);
+
+/**
+ * @fn int bluetooth_send_tds_activation_response(bluetooth_device_address_t *device_address,
+ * unsigned int tds_handle, int response, unsigned char *buf, unsigned int length);
+ *
+ * @brief Send response to TDS activation request from remoted device.
+ *
+ * This function is a synchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ * BLUETOOTH_ERROR_NOT_INITIALIZED - Provider not registered \n
+ * BLUETOOTH_ERROR_INTERNAL - Operation failed\n
+ *
+ * @exception None
+ * @param[in] Remote device BT address.
+ * @param[in] Unique handle for TDS provider.
+ * @param[in] Response for TDS activation request.
+ * @param[in] Transport specific data block to be sent in activation response.
+ * @param[in] Data block length.
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_send_tds_activation_response(bluetooth_device_address_t *device_address,
+ unsigned int tds_handle, int response, unsigned char *buf, unsigned int length);
+
+/**
+ * @fn int bluetooth_tds_read_transport_data(bluetooth_device_address_t *device_address, const char *handle);
+ *
+ * @brief Reads the Complete TDS transport Blocks from Remote Provider's GATT database.
+ *
+ * This function is an asynchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_IN_PROGRESS - Already Read Request is pending on same provider \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ *
+ * @exception None
+ * @param[in] device_address remote device address
+ * @param[in] handle attribute handle
+ *
+ * @remark BLUETOOTH_EVENT_TDS_TRANSPORT_DATA_RECEIVED event is sent to pplication
+ * when TDS data is received from Remote provider
+ */
+int bluetooth_tds_read_transport_data(const bluetooth_device_address_t *device_address,
+ const char *handle);
+
+/**
+ * @fn int bluetooth_tds_enable_control_point(const bluetooth_device_address_t *device_address, const char *handle);
+ *
+ * @brief Enables CCCD on Remote Provider.
+ *
+ * This function is an asynchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_IN_PROGRESS - Already Control Point activation is ongoing to Same Provider \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ *
+ * @exception None
+ * @param[in] device_address remote device address
+ * @param[in] handle attribute handle
+ *
+ * @remark BLUETOOTH_EVENT_TDS_CONTROL_POINT_ENABLED event is sent to application
+ * when Indication is enabled on Remote provider
+ */
+int bluetooth_tds_enable_control_point(const bluetooth_device_address_t *device_address,
+ const char *handle);
+
+/**
+ * @fn int bluetooth_tds_activate_control_point(const bluetooth_device_address_t *device_address, const char *handle
+ * unsigned char *buf, int length);
+ * @brief Sends activation request for Alternate Transport enable on Remote Provider
+ *
+ * This function is an asynchronous call.
+ *
+ * @return BLUETOOTH_ERROR_NONE - Success \n
+ * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n
+ * BLUETOOTH_ERROR_INTERNAL - Internal Error \n
+ * BLUETOOTH_ERROR_IN_PROGRESS - Already Control Point activation is ongoing to Same Provider \n
+ * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter \n
+ *
+ * @exception None
+ * @param[in] device_address remote device address
+ * @param[in] handle attribute handle
+ * @param[in] buf Control point activation param
+ * @param[in] param length
+ *
+ * @remark BLUETOOTH_EVENT_TDS_ACTIVATION_INDICATION event is sent to application when Indication response
+ * is received from remote Provider
+ */
+int bluetooth_tds_activate_control_point(const bluetooth_device_address_t *device_address, const char *handle,
+ unsigned char *buf, int length);
+
+/**
+ * @fn int bluetooth_otp_server_init(const char *directory);
+ *
+ * @brief Starts OTP server.
+ *
+ * This function is a synchronous call.
+ *
+ * @return
+ *
+ * @exception None
+ * @param[in] None
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_otp_server_init(const char *directory);
+
+/**
+ * @fn int bluetooth_otp_server_deinit();
+ *
+ * @brief Stops OTP server.
+ *
+ * This function is a synchronous call.
+ *
+ * @return
+ *
+ * @exception None
+ * @param[in] None
+ * @param[out] None
+ *
+ * @remark None
+ */
+int bluetooth_otp_server_deinit();
+
+/**
* @}
*/