Fix the svace issue (DEREF_OF_NULL)
[platform/core/connectivity/bluetooth-frwk.git] / include / bluetooth-api.h
index 30dbdb9..47aa397 100644 (file)
@@ -62,9 +62,7 @@ extern "C" {
 
 #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
@@ -327,18 +325,22 @@ typedef struct {
  */
 
 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;
+       time_t session_start_time;
+       time_t session_end_time;
+       uint32_t tx_time;
+       uint32_t rx_time;
+       uint32_t idle_time;
+       uint32_t session_connected_time;
+       uint32_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;
+       uint32_t rx_bytes;
+       uint32_t tx_bytes;
+       uint time;
 } bt_battery_app_data;
 
 /**
@@ -709,6 +711,8 @@ typedef struct {
                                                                /**< Base ID for IPSP events */
 #define BLUETOOTH_EVENT_MAP_BASE  ((int)(BLUETOOTH_EVENT_IPSP_BASE + 0x0020))
                                                                /**< Base ID for MAP events */
+#define BLUETOOTH_EVENT_MESH_BASE  ((int)(BLUETOOTH_EVENT_MAP_BASE + 0x0020))
+                                                               /**< Base ID for MAP events */
 
 /**
  * Bluetooth event type
@@ -831,15 +835,10 @@ typedef enum {
        BLUETOOTH_EVENT_GATT_READ_DESC, /**<Gatt Read Characteristic Descriptor Value */
        BLUETOOTH_EVENT_GATT_WRITE_DESC, /**<Gatt Write Characteristic Descriptor Value */
        BLUETOOTH_EVENT_GATT_SVC_CHAR_DESC_DISCOVERED, /**<Gatt Char Descriptors Discovered Event*/
-#ifdef TIZEN_GATT_CLIENT
        BLUETOOTH_EVENT_GATT_SERVER_CONNECTED,/**<Local Gatt Server connected event */
        BLUETOOTH_EVENT_GATT_SERVER_DISCONNECTED, /**<Local Gatt Server Disconnected event */
        BLUETOOTH_EVENT_GATT_CLIENT_CONNECTED,/**<Local Gatt Client connected event */
        BLUETOOTH_EVENT_GATT_CLIENT_DISCONNECTED, /**<Local Gatt Client Disconnected event */
-#else
-       BLUETOOTH_EVENT_GATT_CONNECTED,/**<Gatt connected event */
-       BLUETOOTH_EVENT_GATT_DISCONNECTED, /**<Gatt Disconnected event */
-#endif
        BLUETOOTH_EVENT_GATT_ATT_MTU_CHANGED, /**<Attribute protocol MTU changed event */
        BLUETOOTH_EVENT_GATT_SERVER_ATT_MTU_CHANGED, /**<Attribute protocol Server MTU changed event */
        BLUETOOTH_EVENT_GATT_SERVER_CHARACTERISTIC_VALUE_CHANGED, /**<Gatt Char write callback event */
@@ -867,6 +866,8 @@ typedef enum {
        BLUETOOTH_EVENT_AVRCP_SETTING_REPEAT_STATUS, /**<AVRCP service player repeat status event*/
        BLUETOOTH_EVENT_AVRCP_SETTING_SCAN_STATUS, /**<AVRCP service player scan status event*/
        BLUETOOTH_EVENT_AVRCP_DELAY_CHANGED, /**<AVRCP service transport delay changed event*/
+       BLUETOOTH_EVENT_AVRCP_VOLUME_CHANGED, /**<AVRCP service transport volume changed event*/
+       BLUETOOTH_EVENT_AUDIO_AVC_STATUS, /**<Absolute Volume Control status changed event*/
        BLUETOOTH_EVENT_HF_CONNECTED,
        BLUETOOTH_EVENT_HF_DISCONNECTED,
        BLUETOOTH_EVENT_HF_AUDIO_CONNECTED,
@@ -890,6 +891,7 @@ typedef enum {
        BLUETOOTH_EVENT_HF_CALLSETUP_DIALING,
        BLUETOOTH_EVENT_HF_CALLSETUP_ALERTING,
        BLUETOOTH_EVENT_HF_CIEV_DEVICE_STATUS_CHANGED,
+       BLUETOOTH_EVENT_AUDIO_AVC_MODE_CHANGED,
 
        BLUETOOTH_HID_CONNECTED = BLUETOOTH_EVENT_HID_BASE, /**< Input connectd event*/
        BLUETOOTH_HID_DISCONNECTED, /**< Input disconnectd event*/
@@ -942,6 +944,22 @@ typedef enum {
        BLUETOOTH_EVENT_OTP_WRITE_CHAR_VAL,     /* OTP Write Value Response */
        BLUETOOTH_EVENT_OTP_INDICATION, /* OTP Indication */
        BLUETOOTH_EVENT_OTC_STATE_CHANGED,              /* OTC Connection State Changed Event */
+       BLUETOOTH_EVENT_MESH_SCAN_STARTED = BLUETOOTH_EVENT_MESH_BASE,
+       BLUETOOTH_EVENT_MESH_SCAN_FINISHED,
+       BLUETOOTH_EVENT_MESH_SCAN_RESULT,
+       BLUETOOTH_EVENT_MESH_AUTHENTICATION_REQUEST,
+       BLUETOOTH_EVENT_MESH_PROVISIONING_FINISHED,
+       BLUETOOTH_EVENT_MESH_NODE_BROWSED,
+       BLUETOOTH_EVENT_MESH_NODE_VENDOR_FEATURES,
+       BLUETOOTH_EVENT_MESH_NODE_KEY_CONFIGURED,
+       BLUETOOTH_EVENT_MESH_NODE_TTL_CONFIGURED,
+       BLUETOOTH_EVENT_MESH_MODEL_APPKEY_BIND,
+       BLUETOOTH_EVENT_MESH_MODEL_APPKEY_LIST,
+       BLUETOOTH_EVENT_MESH_MODEL_MSG_EXECUTED,
+       BLUETOOTH_EVENT_MESH_MODEL_SUBSCRIPTION_LIST,
+       BLUETOOTH_EVENT_MESH_MODEL_SUBSCRIPTION_CONFGURED,
+       BLUETOOTH_EVENT_MESH_MODEL_VIRTUAL_SUBSCRIPTION_CONFGURED,
+       BLUETOOTH_EVENT_MESH_MODEL_PUBLICATION_STATUS,
 } bluetooth_event_type_t;
 
  /**
@@ -1352,6 +1370,7 @@ typedef struct {
        bluetooth_device_address_t device_addr;
        unsigned char addr_type;
        int disc_reason;
+       int rssi;
 } bt_connection_info_t;
 
 /**
@@ -1573,13 +1592,10 @@ 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
  */
@@ -1588,7 +1604,6 @@ typedef struct {
        unsigned char uuid[16];
        char address[BLUETOOTH_ADDRESS_STRING_LENGTH];
 } bt_gatt_handle_property_t;
-#endif
 
 /**
  * Structure to GATT Remote service data
@@ -1600,9 +1615,7 @@ 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;
 
 /**
@@ -1641,12 +1654,10 @@ 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;
 
 /**
@@ -1658,13 +1669,11 @@ 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;
 
 /**
@@ -1713,6 +1722,8 @@ typedef struct {
        bluetooth_device_address_t device_addr;
        char *svc_path;
        bluetooth_gatt_service_change_type_t change_type;
+       int inst_id;
+       char *uuid;
 } bt_gatt_service_change_t;
 
 /**
@@ -3263,7 +3274,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)
@@ -3285,7 +3296,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.
@@ -3295,41 +3306,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,
@@ -5695,19 +5675,20 @@ int bluetooth_gatt_free_char_property(bt_gatt_char_property_t *char_pty);
  */
 int bluetooth_gatt_free_desc_property(bt_gatt_char_descriptor_property_t *desc_pty);
 
-#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
 
-#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
+
+int bluetooth_get_gatt_data_batching_available_packets(
+       int *available_packets);
+
+int bluetooth_enable_gatt_data_batching(
+       const bluetooth_device_address_t *device_address, int packet_threshold, int timeout);
+
+int bluetooth_disable_gatt_data_batching(
+       const bluetooth_device_address_t *device_address);
 
  /**
  * @fn int bluetooth_gatt_discover_characteristic_descriptor(const char *characteristic_handle);