X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fbluetooth-api.h;h=7aed26cc0425ce95d0c8c985b854329017455aee;hb=4f8a5f7d76a3aa0ffd224e215bab05ff49907752;hp=cf1f23077243ccd5a6c06a4035c3501224145f09;hpb=17e211b818e970b679d46ae01f3f47ab816c6b47;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/include/bluetooth-api.h b/include/bluetooth-api.h index cf1f230..7aed26c 100644 --- a/include/bluetooth-api.h +++ b/include/bluetooth-api.h @@ -19,8 +19,11 @@ #define _BLUETOOTH_API_H_ #include +#include #include #include +#include + #ifdef __cplusplus extern "C" { @@ -35,25 +38,34 @@ extern "C" { * @{ */ -#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 18 /**< 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_OOB_DATA_LENGTH 16 +#define BLUETOOTH_LE_OOB_DATA_LENGTH 100 + #define BLUETOOTH_PIN_CODE_MAX_LENGTH 16 +#ifdef TIZEN_GATT_CLIENT +#define BLUETOOTH_GATT_ATT_DATA_LENGTH_MAX 610 /**< GATT ATT value max len */ +#endif + /** * This is Bluetooth Connected event role */ @@ -74,6 +86,16 @@ extern "C" { #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 + +#define BLUETOOTH_OTP_CHARC_VAL_MAX_LENGTH 500 /**< OTP Characteristics Value Max length */ + /** * This is Bluetooth error code */ @@ -165,9 +187,81 @@ extern "C" { #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 */ +#define BLUETOOTH_ERROR_NO_DATA ((int)BLUETOOTH_ERROR_BASE - 0x29) + /**< No data */ + +#define BLUETOOTH_ERROR_AUTHORIZATION_REJECTED ((int)BLUETOOTH_ERROR_BASE - 0x2a) + /**< Authorization rejected */ + +/** +* Error codes for ATT Error response * +*/ +#define BLUETOOTH_ATT_ERROR_INTERNAL -1 +#define BLUETOOTH_ATT_ERROR_NONE 0x00 +#define BLUETOOTH_ATT_ERROR_INVALID_HANDLE 0x01 +#define BLUETOOTH_ATT_ERROR_READ_NOT_PERMITTED 0x02 +#define BLUETOOTH_ATT_ERROR_WRITE_NOT_PERMITTED 0x03 +#define BLUETOOTH_ATT_ERROR_INVALID_PDU 0x04 +#define BLUETOOTH_ATT_ERROR_AUTHENTICATION 0x05 +#define BLUETOOTH_ATT_ERROR_REQUEST_NOT_SUPPORTED 0x06 +#define BLUETOOTH_ATT_ERROR_INVALID_OFFSET 0x07 +#define BLUETOOTH_ATT_ERROR_AUTHORIZATION 0x08 +#define BLUETOOTH_ATT_ERROR_PREPARE_QUEUE_FULL 0x09 +#define BLUETOOTH_ATT_ERROR_ATTRIBUTE_NOT_FOUND 0x0A +#define BLUETOOTH_ATT_ERROR_ATTRIBUTE_NOT_LONG 0x0B +#define BLUETOOTH_ATT_ERROR_INSUFFICIENT_ENCRYPTION_KEY_SIZE 0x0C +#define BLUETOOTH_ATT_ERROR_INVALID_ATTRIBUTE_VALUE_LEN 0x0D +#define BLUETOOTH_ATT_ERROR_UNLIKELY 0x0E +#define BLUETOOTH_ATT_ERROR_INSUFFICIENT_ENCRYPTION 0x0F +#define BLUETOOTH_ATT_ERROR_UNSUPPORTED_GROUP_TYPE 0x10 +#define BLUETOOTH_ATT_ERROR_INSUFFICIENT_RESOURCES 0x11 +/* Common profile error codes */ +#define BLUETOOTH_ATT_ERROR_WRITE_REQUEST_REJECTED 0xFC +#define BLUETOOTH_ATT_ERROR_CCCD_IMPROPERLY_CONFIGURED 0xFD +#define BLUETOOTH_ATT_ERROR_PROCEDURE_ALREADY_IN_PROGRESS 0xFE +#define BLUETOOTH_ATT_ERROR_OUT_OF_RANGE 0xFF + +/* + * Bluetooth ATT error codes specific to OTP + */ +#define BLUETOOTH_OTP_ERROR_WRITE_REQUEST_REJECTED 0x80 +#define BLUETOOTH_OTP_ERROR_OBJECT_NOT_SELECTED 0x81 +#define BLUETOOTH_OTP_ERROR_CONCURRENCY_LIMIT_EXCEEDED 0x82 +#define BLUETOOTH_OTP_ERROR_OBJECT_NAME_EXISTS 0x83 + +/* + * Bluetooth OTP error codes + * TODO: Check error code conflict + */ +#define BLUETOOTH_ERROR_INVALID_DIRECTORY 0x01 +#define BLUETOOTH_ERROR_NO_OBJECTS_FOUND 0x02 + +/** + * 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_CONNECTION_REJECTED_DUE_TO_SECURITY_REASONS 0x0e +#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 + /** * Device disconnect reason */ @@ -194,6 +288,15 @@ typedef enum { } bluetooth_device_address_type_t; /** + * This is BD Address type defined in kernel BT header + */ +typedef enum { + BLUETOOTH_BDADDR_BREDR = 0x00, + BLUETOOTH_BDADDR_LE_PUBLIC = 0x01, + BLUETOOTH_BDADDR_LE_RANDOM = 0x02 +} bluetooth_bdaddr_type_e; + +/** * This is Bluetooth version */ typedef struct { @@ -220,6 +323,18 @@ typedef struct { } bluetooth_device_pin_code_t; /** + * This is data for battery usage monitoring + */ + +typedef struct { + time_t session_start_time; + time_t session_end_time; + uint16_t session_connected_time; + uint16_t session_scan_time; + GSList *atm_list; +} bt_battery_data; + +/** * Adapter state */ typedef enum { @@ -265,6 +380,7 @@ typedef enum { /** * Service type + * Service type matched to bt_profile_type_t of bt-service-common.h */ typedef enum { BLUETOOTH_RFCOMM_SERVICE = 0x01, @@ -276,16 +392,18 @@ typedef enum { 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; /** @@ -340,6 +458,11 @@ typedef enum { } 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, @@ -374,6 +497,103 @@ typedef enum { } 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; + +/** +* OTP Characteristics Value +*/ +typedef struct { + int length; /**< Characteristics value length */ + guint8 data[BLUETOOTH_OTP_CHARC_VAL_MAX_LENGTH]; /**< Characteristics data */ +} bluetooth_otp_charc_data_t; + +/** +* Structure to hold the OTP response data from remote OTP server +*/ +typedef struct { + char *handle; /**< Handle */ + int data_length; /**< Data length */ + char *data; /**< Read data */ +} bluetooth_otp_resp_info_t; + +/** +* Structure to hold the OTC Channel Info +*/ +typedef struct { + gboolean connected; /**< Connection Status */ + int fd; /**< Fd */ + char *address; /**< Remote address */ +} bluetooth_otc_info_t; + +/** * Advertising parameters */ typedef struct { @@ -381,6 +601,7 @@ typedef struct { float interval_max; guint8 filter_policy; guint8 type; + int tx_power_level; } bluetooth_advertising_params_t; /** @@ -392,12 +613,20 @@ typedef struct { float window; /**< LE scan window */ } bluetooth_le_scan_params_t; +/** +* LE Scan type +*/ +typedef enum { + BLUETOOTH_LE_PASSIVE_SCAN = 0x00, + BLUETOOTH_LE_ACTIVE_SCAN +} bluetooth_le_scan_type_t; + /* 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; @@ -428,6 +657,18 @@ typedef struct { 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)) @@ -459,6 +700,8 @@ typedef struct { /**< 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 @@ -479,7 +722,7 @@ typedef enum { 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 */ @@ -498,6 +741,8 @@ typedef enum { 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 */ @@ -531,11 +776,34 @@ typedef enum { 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*/ @@ -555,14 +823,25 @@ typedef enum { BLUETOOTH_EVENT_GATT_READ_DESC, /**= BLUETOOTH_ERROR_NONE) @@ -1767,6 +2276,7 @@ int main() { 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) @@ -1890,12 +2400,14 @@ int ret = 0; ret = bluetooth_disable_adapter(); @endcode */ +int bluetooth_read_battery_data(bt_battery_data *latest); int bluetooth_disable_adapter(void); int bluetooth_recover_adapter(void); int bluetooth_check_adapter_le(void); int bluetooth_enable_adapter_le(void); int bluetooth_disable_adapter_le(void); +int bluetooth_get_uuid_name(const char *uuid, char **name); /** * @fn int bluetooth_reset_adapter(void) @@ -2164,6 +2676,52 @@ int bluetooth_get_connected_link_type(const bluetooth_device_address_t *device_a 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_get_discoverable_mode(bluetooth_discoverable_mode_t *discoverable_mode_ptr) * @brief Get the visibility mode * @@ -2695,6 +3253,27 @@ is_le_scanning = bluetooth_is_le_scanning (); */ 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. @@ -2774,6 +3353,8 @@ int bluetooth_set_connectable(gboolean is_connectable); int bluetooth_is_connectable(gboolean *is_connectable); +int bluetooth_disconnect_device(const bluetooth_device_address_t *device_address); + /** * @fn int bluetooth_bond_device(const bluetooth_device_address_t *device_address) * @brief Initiate a bonding process @@ -3070,6 +3651,9 @@ void bt_get_bonded_devices(void) */ 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) @@ -3123,6 +3707,31 @@ 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 * @@ -3654,7 +4263,7 @@ int bluetooth_rfcomm_listen(int socket_fd, int max_pending_connection); * * @exception None * @remark None - * @see bluetooth_rfcomm_reject_connection + * @see bluetooth_rfcomm_reject_connection */ int bluetooth_rfcomm_accept_connection(int server_fd); @@ -3672,7 +4281,7 @@ 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); @@ -3984,7 +4593,7 @@ int bluetooth_network_server_disconnect(const bluetooth_device_address_t *device * 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, @@ -4004,7 +4613,7 @@ int bluetooth_hdp_activate(unsigned short data_type, * @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); @@ -4026,7 +4635,7 @@ 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); @@ -4052,7 +4661,7 @@ int bluetooth_hdp_send_data(unsigned int channel_id, * @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, @@ -4076,7 +4685,7 @@ int bluetooth_hdp_connect(const char *app_handle, * @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); @@ -4098,7 +4707,7 @@ int bluetooth_hdp_disconnect(unsigned int channel_id, * @exception None * * @remark None - * @see bluetooth_opc_deinit + * @see bluetooth_opc_deinit */ int bluetooth_opc_init(void); @@ -4116,10 +4725,10 @@ 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, @@ -4142,11 +4751,11 @@ int bluetooth_opc_init(void); * @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) @@ -4163,7 +4772,7 @@ int bluetooth_opc_push_files(bluetooth_device_address_t *remote_address, * @exception None * * @remark None - * @see bluetooth_opc_push_files + * @see bluetooth_opc_push_files */ int bluetooth_opc_cancel_push(void); @@ -4180,7 +4789,7 @@ int bluetooth_opc_cancel_push(void); * @exception None * * @remark None - * @see None + * @see None */ gboolean bluetooth_opc_session_is_exist(void); @@ -4204,6 +4813,27 @@ 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. * @@ -4219,7 +4849,7 @@ int bluetooth_opc_is_sending(gboolean *is_sending); * @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); @@ -4238,7 +4868,7 @@ 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); @@ -4277,7 +4907,7 @@ gboolean bluetooth_obex_server_is_activated(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); @@ -4296,7 +4926,7 @@ 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); @@ -4314,7 +4944,7 @@ 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); @@ -4332,7 +4962,7 @@ 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); @@ -4354,7 +4984,7 @@ 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); @@ -4374,7 +5004,7 @@ 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); @@ -4395,7 +5025,7 @@ 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); @@ -4418,7 +5048,7 @@ 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); @@ -4443,7 +5073,7 @@ 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); @@ -4467,7 +5097,7 @@ 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); @@ -4486,26 +5116,90 @@ 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 + * + * @remark None + * @see bluetooth_map_client_deinit + */ +int bluetooth_map_client_init(void); + +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_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 asynchronous call. + * + * @return BLUETOOTH_ERROR_NONE - Success \n + * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Device is not enabled \n + * BLUETOOTH_ERROR_INTERNAL - Update inbox failed \n + * + * @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_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 + * @see None */ int bluetooth_oob_read_local_data(bt_oob_data_t *local_oob_data); @@ -4514,6 +5208,7 @@ 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, + * bluetooth_bdaddr_type_e address_type, * bt_oob_data_t *oob_data) * @brief Add/updated the remote device Hash and Randmizer. * @@ -4525,6 +5220,7 @@ int bluetooth_oob_read_local_data(bt_oob_data_t *local_oob_data); * * @exception None * @param[in] remote_device_address - Remote device address + * address_type - bdaddr type * remote_oob_data - Ponter to Hash and Randomizer oob data structure * * @remark None @@ -4533,6 +5229,7 @@ int bluetooth_oob_read_local_data(bt_oob_data_t *local_oob_data); int bluetooth_oob_add_remote_data( const bluetooth_device_address_t *remote_device_address, + bluetooth_bdaddr_type_e address_type, bt_oob_data_t *remote_oob_data); @@ -4551,12 +5248,57 @@ int bluetooth_oob_add_remote_data( * @param[in] remote_device_address - Remote device address * * @remark None - * @see None + * @see None */ int bluetooth_oob_remove_remote_data( const bluetooth_device_address_t *remote_device_address); + +/** + * @fn int bluetooth_le_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_le_oob_read_local_data(bt_oob_data_t *local_oob_data); + +/** + * @fn int bluetooth_le_oob_add_remote_data( + * const bluetooth_device_address_t *remote_device_address, + * bluetooth_bdaddr_type_e address_type, + * 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 + * address_type - bdaddr type + * remote_oob_data - Ponter to Hash and Randomizer oob data structure + * + * @remark None + * @see None + */ +int bluetooth_le_oob_add_remote_data( + const bluetooth_device_address_t *remote_device_address, + bluetooth_bdaddr_type_e address_type, + bt_oob_data_t *remote_oob_data); + /** * @fn int bluetooth_gatt_get_primary_services(const bluetooth_device_address_t *address, * bt_gatt_handle_info_t *prim_svc); @@ -4602,6 +5344,9 @@ int bluetooth_gatt_get_primary_services(const bluetooth_device_address_t *addres */ 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); @@ -4627,7 +5372,7 @@ int bluetooth_gatt_get_service_property(const char *service_handle, bt_gatt_service_property_t *service); /** - * @fn int bluetooth_gatt_watch_characteristics(const char *service_handle) + * @fn int bluetooth_gatt_watch_characteristics(const char *service_handle, const char *svc_name) * * @brief Register to GATT based service to receive value change notification/indication. * @@ -4641,11 +5386,12 @@ int bluetooth_gatt_get_service_property(const char *service_handle, * * @exception None * @param[in] service_handle - Handle for remote service. + * @param[in] service_name - Friednly name of service uuid. * * @remark None - * @see None + * @see None */ -int bluetooth_gatt_watch_characteristics(const char *service_handle); +int bluetooth_gatt_watch_characteristics(const char *service_handle, const char *svc_name); /** * @fn int bluetooth_gatt_unwatch_characteristics(const char *service_handle) @@ -4765,7 +5511,8 @@ int bluetooth_gatt_set_characteristics_value(const char *char_handle, * @see None */ int bluetooth_gatt_set_characteristics_value_by_type(const char *char_handle, - const guint8 *value, int length, guint8 write_type); + const guint8 *value, int length, + guint8 write_type, gpointer app_data); /** @@ -4810,7 +5557,7 @@ int bluetooth_gatt_set_characteristics_value_request(const char *char_handle, * @remark None * @see None */ -int bluetooth_gatt_read_characteristic_value(const char *char_handle); +int bluetooth_gatt_read_characteristic_value(const char *char_handle, gpointer app_data); /** * @fn int bluetooth_gatt_get_service_from_uuid(bluetooth_device_address_t *address, @@ -4834,7 +5581,7 @@ int bluetooth_gatt_read_characteristic_value(const char *char_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); @@ -4917,7 +5664,7 @@ int bluetooth_gatt_free_service_property(bt_gatt_service_property_t *svc_pty); * @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); @@ -4936,12 +5683,21 @@ int bluetooth_gatt_free_service_property(bt_gatt_service_property_t *svc_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); +#ifdef TIZEN_GATT_CLIENT +int bluetooth_connect_le(const bluetooth_device_address_t *device_address, + gboolean auto_connect, int client_id); +#else +int bluetooth_connect_le(const bluetooth_device_address_t *device_address, gboolean auto_connect); +#endif - int bluetooth_disconnect_le(const bluetooth_device_address_t *device_address); +#ifdef TIZEN_GATT_CLIENT +int bluetooth_disconnect_le(const bluetooth_device_address_t *device_address, + int client_id); +#else +int bluetooth_disconnect_le(const bluetooth_device_address_t *device_address); +#endif /** * @fn int bluetooth_gatt_discover_characteristic_descriptor(const char *characteristic_handle); @@ -4978,7 +5734,7 @@ int bluetooth_gatt_discover_characteristic_descriptor(const char *characteristic * @remark None * @see None */ - int bluetooth_gatt_read_descriptor_value(const char *desc_handle); +int bluetooth_gatt_read_descriptor_value(const char *desc_handle, gpointer app_data); /** * @fn int bluetooth_gatt_write_descriptor_value(const char *desc_handle, @@ -5001,8 +5757,8 @@ int bluetooth_gatt_discover_characteristic_descriptor(const char *characteristic * @remark None * @see None */ - int bluetooth_gatt_write_descriptor_value(const char *desc_handle, - const guint8 *value, int length); +int bluetooth_gatt_write_descriptor_value(const char *desc_handle, + const guint8 *value, int length, gpointer app_data); /* @fn int bluetooth_gatt_init(void) * @@ -5010,9 +5766,9 @@ int bluetooth_gatt_discover_characteristic_descriptor(const char *characteristic * * 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 @@ -5026,9 +5782,9 @@ 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 @@ -5122,13 +5878,13 @@ int bluetooth_gatt_set_characteristic_value( * 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() @@ -5154,8 +5910,8 @@ int bluetooth_gatt_add_descriptor( * * @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() @@ -5186,7 +5942,7 @@ int bluetooth_gatt_get_service(const char *svc_uuid); /* @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. * @@ -5552,6 +6308,26 @@ int bluetooth_set_scan_response_data(int handle, const bluetooth_scan_resp_data_ int bluetooth_set_scan_parameters(bluetooth_le_scan_params_t *params); /** + * @fn intbluetooth_set_scan_type(bluetooth_le_scan_type_t scan_type); + *ss + * @brief Set scan type + * + * This function is used to set LE scan type + * + * 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] scan_type - LE scan type + * + * @remark None + */ +int bluetooth_set_scan_type(bluetooth_le_scan_type_t scan_type); + +/** * @fn int bluetooth_is_advertising(void) * @brief Check for the advertising is in-progress or not. * @@ -5661,8 +6437,7 @@ int bluetooth_clear_white_list(void); * @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); @@ -5686,6 +6461,26 @@ int bluetooth_le_conn_update(const bluetooth_device_address_t *address, 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. @@ -5706,6 +6501,64 @@ int bluetooth_update_le_connection_mode(const bluetooth_device_address_t *addres 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. * @@ -5778,7 +6631,8 @@ int bluetooth_pbap_phonebook_search(const bluetooth_device_address_t *address, */ 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); * @@ -5796,7 +6650,6 @@ int bluetooth_set_manufacturer_data(const bluetooth_manufacturer_data_t *value); * @remark None */ int bluetooth_dpm_is_mode_allowed(void); -#endif /** * @fn int bluetooth_dpm_set_allow_mode(bt_dpm_allow_t value); @@ -5834,10 +6687,10 @@ 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 */ @@ -5856,7 +6709,7 @@ int bluetooth_dpm_get_allow_mode(bt_dpm_allow_t *value); * * @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 @@ -6524,6 +7377,511 @@ int bluetooth_dpm_set_data_transfer_state(bt_dpm_status_t value); 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(); + +/** + * @fn int bluetooth_otp_enable_notification(const char *handle); + * + * @brief Enable notification for remote OACP & OLCP characteristics. + * + * This function is a synchronous call. + * + * @return + * + * @exception None + * @param[in] None + * @param[out] None + * + * @remark None + */ +int bluetooth_otp_enable_notification(const char *handle); + +/** + * @fn int bluetooth_otp_write_characteristics_value( const char *handle, + * unsigned char *buf, int length); + * + * @brief Write value on remote characteristics. + * + * This function is a synchronous call. + * + * @return + * + * @exception None + * @param[in] None + * @param[out] None + * + * @remark None + */ +int bluetooth_otp_write_characteristics_value(const char *handle, + unsigned char *buf, int length); + +/** + * @fn int bluetooth_otp_read_characteristic_value(const char *handle); + * + * @brief Read value for remote characteristics. + * + * This function is a synchronous call. + * + * @return + * + * @exception None + * @param[in] None + * @param[out] None + * + * @remark None + */ +int bluetooth_otp_read_characteristic_value(const char *handle); + +/** + * @fn int bluetooth_otp_connect_otc(const bluetooth_device_address_t *device_address); + * + * @brief Read value for remote characteristics. + * + * This function is a synchronous call. + * + * @return + * + * @exception None + * @param[in] None + * @param[out] None + * + * @remark None + */ +int bluetooth_otp_connect_otc(const bluetooth_device_address_t *device_address); + +/** + * @fn int bluetooth_otp_disconnect_otc(const bluetooth_device_address_t *device_address); + * + * @brief Read value for remote characteristics. + * + * This function is a synchronous call. + * + * @return + * + * @exception None + * @param[in] None + * @param[out] None + * + * @remark None + */ +int bluetooth_otp_disconnect_otc(const bluetooth_device_address_t *device_address); + +/** + * @fn int bluetooth_is_le_2m_phy_supported(gboolean *is_supported) + * @brief Check if Adapter supports LE 2M PHY feature or not. + * + * This API is used to check the whether LE Adapter supports LE 2M PHY feature, which is introduced + * in BT 5.0 specification. + * + * This function is a synchronous call. + * + * @return BLUETOOTH_ERROR_NONE - Succeess \n + * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter (NULL buffer) \n + * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n + * BLUETOOTH_ERROR_INTERNAL - Internal error \n + * @param[out] is_supported. This boolean variable indicates whether LE 2M PHY is supported or not + * + * @remark None + */ +int bluetooth_is_le_2m_phy_supported(gboolean *is_supported); + +/** + * @fn int bluetooth_is_le_coded_phy_supported(gboolean *is_supported) + * @brief Check if Adapter supports LE 2M CODED feature or not. + * + * This API is used to check the whether LE Adapter supports LE CODED PHY feature, which is introduced + * in BT 5.0 specification. + * + * This function is a synchronous call. + * + * @return BLUETOOTH_ERROR_NONE - Succeess \n + * BLUETOOTH_ERROR_INVALID_PARAM - Invalid parameter (NULL buffer) \n + * BLUETOOTH_ERROR_DEVICE_NOT_ENABLED - Adapter is disabled \n + * BLUETOOTH_ERROR_INTERNAL - Internal error \n + * @param[out] is_supported. This boolean variable indicates whether LE CODED PHY is supported or not + * + * @remark None + */ +int bluetooth_is_le_coded_phy_supported(gboolean *is_supported); + +/** * @} */