X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fbluetooth-api.h;h=3146e6d9adbde27100df0bc71b7bb0cd6790775c;hb=9a6e83fd9099f56bd7c99969136bbdf82714e0f2;hp=fd99aa58f227f3d3a50aa0f04bfa4ff784cd9f6c;hpb=81aac60ae7cc55ede31ec3079883a1704c916132;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/include/bluetooth-api.h b/include/bluetooth-api.h index fd99aa5..3146e6d 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,6 +38,7 @@ extern "C" { * @{ */ +#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 @@ -54,8 +58,14 @@ extern "C" { #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 */ @@ -76,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 */ @@ -173,6 +193,55 @@ extern "C" { #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 */ @@ -180,16 +249,19 @@ extern "C" { #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 */ @@ -216,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 { @@ -242,6 +323,26 @@ 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; + +typedef struct { + uid_t uid; + pid_t pid; + uint16_t rx_bytes; + uint16_t tx_bytes; + uint time; +} bt_battery_app_data; + +/** * Adapter state */ typedef enum { @@ -287,6 +388,7 @@ typedef enum { /** * Service type + * Service type matched to bt_profile_type_t of bt-service-common.h */ typedef enum { BLUETOOTH_RFCOMM_SERVICE = 0x01, @@ -305,10 +407,11 @@ typedef enum { * 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; /** @@ -402,6 +505,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 { @@ -409,6 +609,7 @@ typedef struct { float interval_max; guint8 filter_policy; guint8 type; + int tx_power_level; } bluetooth_advertising_params_t; /** @@ -420,6 +621,14 @@ 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 */ @@ -499,6 +708,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 @@ -508,6 +719,7 @@ typedef enum { BLUETOOTH_EVENT_ENABLED, /**< Bluetooth event adpater enabled */ BLUETOOTH_EVENT_DISABLED, /**< Bluetooth event adpater disabled */ + BLUETOOTH_EVENT_DISABLED_BATTERY_DATA, /**< Bluetooth event adapter disabled battery data*/ BLUETOOTH_EVENT_LE_ENABLED, /**< Bluetooth event adpater enabled */ BLUETOOTH_EVENT_LE_DISABLED, /**< Bluetooth event adpater disabled */ BLUETOOTH_EVENT_LOCAL_NAME_CHANGED, /**< Bluetooth event local name changed*/ @@ -519,9 +731,8 @@ 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_IBEACON_DEVICE_FOUND, /**< Bluetooth event remote ibeacon device found (iBeacon LE dev) */ BLUETOOTH_EVENT_REMOTE_DEVICE_NAME_UPDATED,/**< Bluetooth event remote device name updated*/ BLUETOOTH_EVENT_BONDING_FINISHED, /**< Bluetooth event bonding completed */ BLUETOOTH_EVENT_BONDED_DEVICE_REMOVED, /**< Bluetooth event bonding removed */ @@ -574,11 +785,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*/ @@ -598,16 +832,25 @@ typedef enum { BLUETOOTH_EVENT_GATT_READ_DESC, /** */ - int ibeacon_type; /** */ - int major_id; /** */ - int minor_id; /** */ - int measured_power; /** */ - int uuid_len; /** */ - char uuid[BLUETOOTH_UUID_STRING_MAX]; /** */ -} bluetooth_ibeacon_device_info_t; - -typedef struct { int slot_id; bluetooth_le_scan_filter_feature_t added_features; /**< added features */ bluetooth_device_address_t device_address; /**< device address */ @@ -1072,6 +1319,7 @@ typedef struct { bluetooth_device_address_t device_address; /**< remote device address */ bluetooth_device_name_t device_name; /**< device name */ char str_passkey[BLUETOOTH_DEVICE_PASSKEY_LENGTH_MAX]; /**< pass-key string */ + bool incoming; /**< stores if bonding request is incoming */ } bluetooth_authentication_request_info_t; /** @@ -1108,6 +1356,7 @@ typedef struct { bluetooth_device_address_t device_addr; unsigned char addr_type; int disc_reason; + int rssi; } bt_connection_info_t; /** @@ -1133,8 +1382,10 @@ typedef enum { HTYPE_TRANS_GET_PROTOCOL, HTYPE_TRANS_SET_PROTOCOL, HTYPE_TRANS_DATA, - HTYPE_TRANS_UNKNOWN -}bt_hid_header_type_t; + HTYPE_TRANS_UNKNOWN, + HTYPE_TRANS_GET_IDLE = 0xF0, + HTYPE_TRANS_SET_IDLE = 0xF1, +} bt_hid_header_type_t; /** * HID Param type @@ -1142,7 +1393,7 @@ typedef enum { typedef enum { PTYPE_DATA_RTYPE_INPUT, PTYPE_DATA_RTYPE_OUTPUT -}bt_hid_param_type_t; +} bt_hid_param_type_t; /** * Stucture to hid receive data @@ -1190,13 +1441,6 @@ typedef struct { /**< device address */ } bluetooth_rfcomm_connection_request_t; -typedef struct { - int socket_fd; - /**< the socket fd */ - bluetooth_device_address_t device_addr; - /**< device address */ -} bluetooth_hid_request_t; - /** * HDP QOS types */ @@ -1252,6 +1496,15 @@ typedef struct { 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" @@ -1313,6 +1566,9 @@ typedef struct { unsigned char randomizer256[BLUETOOTH_OOB_DATA_LENGTH]; unsigned int hash256_len; unsigned int randomizer256_len; + + unsigned char eir[BLUETOOTH_LE_OOB_DATA_LENGTH]; + unsigned int eir_len; } bt_oob_data_t; /** @@ -1322,8 +1578,23 @@ typedef struct { typedef struct { int count; char **handle; +#ifdef TIZEN_GATT_CLIENT + char uuids[BLUETOOTH_MAX_SERVICES_FOR_DEVICE][BLUETOOTH_UUID_STRING_MAX]; + int inst_id[BLUETOOTH_MAX_SERVICES_FOR_DEVICE]; +#endif } bt_gatt_handle_info_t; +#ifdef TIZEN_GATT_CLIENT +/** + * Structure to a most basic GATT attribute handle data + */ +typedef struct { + int instance_id; + unsigned char uuid[16]; + char address[BLUETOOTH_ADDRESS_STRING_LENGTH]; +} bt_gatt_handle_property_t; +#endif + /** * Structure to GATT Remote service data */ @@ -1334,6 +1605,9 @@ typedef struct { gboolean primary; bt_gatt_handle_info_t include_handles; bt_gatt_handle_info_t char_handle; +#ifdef TIZEN_GATT_CLIENT + bt_gatt_handle_property_t prop; /* Added Service UUID, instance_id & associated remote device */ +#endif } bt_gatt_service_property_t; /** @@ -1372,6 +1646,12 @@ typedef struct { unsigned int permission; char *representation; bt_gatt_handle_info_t char_desc_handle; +#ifdef TIZEN_GATT_CLIENT + bt_gatt_handle_property_t prop; /* Added Char UUID, instance_id */ + bt_gatt_handle_property_t svc_prop; /* Added Service UUID, instance_id */ + char value[BLUETOOTH_GATT_ATT_DATA_LENGTH_MAX]; /* Added */ + char address[BLUETOOTH_ADDRESS_STRING_LENGTH]; /* Added */ +#endif } bt_gatt_char_property_t; /** @@ -1383,6 +1663,13 @@ typedef struct { char *uuid; unsigned char *val; unsigned int val_len; +#ifdef TIZEN_GATT_CLIENT + bt_gatt_handle_property_t prop; /* Added Descriptor UUID, instance_id */ + bt_gatt_handle_property_t char_prop; /* Added Char UUID, instance_id */ + bt_gatt_handle_property_t svc_prop; /* Added Service UUID, instance_id */ + char value[BLUETOOTH_GATT_ATT_DATA_LENGTH_MAX];/* Added */ + char address[BLUETOOTH_ADDRESS_STRING_LENGTH]; /* Added */ +#endif } bt_gatt_char_descriptor_property_t; /** @@ -1395,6 +1682,13 @@ typedef struct { guint32 val_len; } bt_gatt_char_value_t; +typedef struct { + unsigned char UUID[16]; + char address[18]; + char *val; + int len; +} bt_gatt_notify_req_t ; + /** * Structure to GATT Read Request */ @@ -1403,7 +1697,7 @@ typedef struct { char *service_handle; char *address; guint16 offset; - guint8 req_id; + guint req_id; } bt_gatt_read_req_t; /** @@ -1413,7 +1707,8 @@ typedef struct { 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; @@ -1423,6 +1718,10 @@ typedef struct { bluetooth_device_address_t device_addr; char *svc_path; bluetooth_gatt_service_change_type_t change_type; +#ifdef TIZEN_GATT_CLIENT + int inst_id; + char *uuid; +#endif } bt_gatt_service_change_t; /** @@ -1442,7 +1741,17 @@ typedef struct { char *service_handle; char *address; gboolean complete; - } bt_gatt_indicate_confirm_t; +} bt_gatt_indicate_confirm_t; + +/** + * Structure for GATT response data + */ +typedef struct { + char *handle; + guint8 *value; + guint32 len; + gpointer user_data; +} bt_gatt_resp_data_t; /** * Structure to RSSI Signal Strength Alert @@ -1622,18 +1931,12 @@ typedef enum { TRUSTED_PROFILE_PBAP = 1, TRUSTED_PROFILE_MAP, TRUSTED_PROFILE_SAP, + TRUSTED_PROFILE_HFP_HF, + TRUSTED_PROFILE_A2DP, 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 { @@ -1644,17 +1947,26 @@ typedef struct { 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 @@ -1756,6 +2068,93 @@ typedef struct { char if_name[16]; } 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 */ @@ -2019,11 +2418,15 @@ ret = bluetooth_disable_adapter(); @endcode */ int bluetooth_disable_adapter(void); +int bluetooth_read_battery_data(bt_battery_data *latest); +int bluetooth_set_battery_monitor_state(bool state); +int bluetooth_get_battery_monitor_state(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) @@ -2338,52 +2741,6 @@ int bluetooth_get_profile_trusted( 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 * @@ -2915,7 +3272,7 @@ is_le_scanning = bluetooth_is_le_scanning (); */ gboolean bluetooth_is_le_scanning(void); -gboolean bluetooth_is_scan_filter_supported(void); +int bluetooth_is_scan_filter_supported(gboolean *is_supported); /** * @fn int bluetooth_force_hcidump(int timeout) @@ -2937,7 +3294,7 @@ gboolean bluetooth_is_scan_filter_supported(void); int bluetooth_force_hcidump(int timeout); /** - * @fn int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter, int *slot_id) + * @fn int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter) * @brief Register scan filter. * * This function registers the scan filter. @@ -2947,41 +3304,10 @@ int bluetooth_force_hcidump(int timeout); * @return BLUETOOTH_ERROR_NONE - Success \n * * @param[in] filter scan filter to register - * @param[out] slot_id the slot ID of scan filter - * - * @remark None - */ -int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter, int *slot_id); - -/** - * @fn int bluetooth_unregister_scan_filter(int slot_id) - * @brief Register scan filter. - * - * This function unregisters the scan filter. - * - * This function is a synchronous call. - * - * @return BLUETOOTH_ERROR_NONE - Success \n - * - * @param[in] slot_id the slot ID of scan filter - * - * @remark None - */ -int bluetooth_unregister_scan_filter(int slot_id); - -/** - * @fn int bluetooth_unregister_all_scan_filters(void) - * @brief Register scan filter. - * - * This function usregisters all scan filters. - * - * This function is a synchronous call. - * - * @return BLUETOOTH_ERROR_NONE - Success \n * * @remark None */ -int bluetooth_unregister_all_scan_filters(void); +int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter); /** * @fn int bluetooth_enable_rssi(const bluetooth_device_address_t *remote_address, @@ -3015,6 +3341,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 @@ -3367,6 +3695,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 * @@ -3898,7 +4251,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); @@ -3916,7 +4269,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); @@ -4228,7 +4581,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, @@ -4248,7 +4601,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); @@ -4270,7 +4623,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); @@ -4296,7 +4649,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, @@ -4320,7 +4673,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); @@ -4342,7 +4695,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); @@ -4360,10 +4713,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, @@ -4386,11 +4739,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) @@ -4407,7 +4760,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); @@ -4424,7 +4777,7 @@ int bluetooth_opc_cancel_push(void); * @exception None * * @remark None - * @see None + * @see None */ gboolean bluetooth_opc_session_is_exist(void); @@ -4484,7 +4837,7 @@ int bluetooth_opp_get_transfer_progress(bluetooth_opp_transfer_type_t transfer_t * @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); @@ -4503,7 +4856,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); @@ -4542,7 +4895,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); @@ -4561,7 +4914,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); @@ -4579,7 +4932,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); @@ -4597,7 +4950,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); @@ -4619,7 +4972,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); @@ -4639,7 +4992,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); @@ -4660,7 +5013,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); @@ -4683,7 +5036,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); @@ -4708,7 +5061,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); @@ -4732,7 +5085,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); @@ -4751,53 +5104,120 @@ 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_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, + * 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_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); @@ -4816,12 +5236,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); @@ -4895,7 +5360,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. * @@ -4909,11 +5374,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) @@ -5033,7 +5499,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); /** @@ -5078,7 +5545,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, @@ -5102,7 +5569,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); @@ -5185,7 +5652,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); @@ -5204,12 +5671,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); @@ -5246,7 +5722,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, @@ -5269,8 +5745,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) * @@ -5278,9 +5754,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 @@ -5294,9 +5770,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 @@ -5390,13 +5866,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() @@ -5422,8 +5898,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() @@ -5820,6 +6296,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. * @@ -5929,8 +6425,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); @@ -6033,14 +6528,14 @@ int bluetooth_get_att_mtu(const bluetooth_device_address_t *device_address, /** * @fn int bluetooth_get_device_ida(const bluetooth_device_address_t *device_rpa, - * bluetooth_device_address_t *id_address) + * 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 + * @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. @@ -6126,7 +6621,6 @@ int bluetooth_set_manufacturer_data(const bluetooth_manufacturer_data_t *value); int bluetooth_set_passkey_notification(gboolean enable); -#ifdef TIZEN_DPM_VCONF_ENABLE /** * @fn int bluetooth_dpm_is_mode_allowed(void); * @@ -6144,7 +6638,6 @@ int bluetooth_set_passkey_notification(gboolean enable); * @remark None */ int bluetooth_dpm_is_mode_allowed(void); -#endif /** * @fn int bluetooth_dpm_set_allow_mode(bt_dpm_allow_t value); @@ -6182,10 +6675,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 */ @@ -6204,7 +6697,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 @@ -6872,6 +7365,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); + +/** * @} */