#define BLUETOOTH_ERROR_DEVICE_POLICY_RESTRICTION ((int)BLUETOOTH_ERROR_BASE - 0x28)
/**< Device Policy Restricted */
+/**
+* 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_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE 0x3d
#define BLUETOOTH_ERROR_CONNECTION_FAILED_TO_BE_ESTABLISHED 0x3e
-/*
- * Bluetooth OTP error codes
- */
-#define BLUETOOTH_ERROR_INVALID_DIRECTORY 0x01
-#define BLUETOOTH_ERROR_NO_OBJECTS_FOUND 0x02
-#define BLUETOOTH_ERROR_WRITE_REQUEST_REJECTED 0x80
-#define BLUETOOTH_ERROR_OBJECT_NOT_SELECTED 0x81
-#define BLUETOOTH_ERROR_CONCURRENCY_LIMIT_EXCEEDED 0x82
-#define BLUETOOTH_ERROR_OBJECT_NAME_EXISITS 0x83
-
/**
* Device disconnect reason
*/
HTYPE_TRANS_GET_PROTOCOL,
HTYPE_TRANS_SET_PROTOCOL,
HTYPE_TRANS_DATA,
- HTYPE_TRANS_UNKNOWN
+ HTYPE_TRANS_UNKNOWN,
+ HTYPE_TRANS_GET_IDLE = 0xF0,
+ HTYPE_TRANS_SET_IDLE = 0xF1,
} bt_hid_header_type_t;
/**
} bt_gatt_indicate_confirm_t;
/**
+ * Structure for GATT response data
+ */
+typedef struct {
+ guint8 *value;
+ guint32 len;
+ gpointer user_data;
+} bt_gatt_resp_data_t;
+
+/**
* Structure to RSSI Signal Strength Alert
*/
* @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);
/**
* @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,
* @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,
* @see None
*/
int bluetooth_gatt_write_descriptor_value(const char *desc_handle,
- const guint8 *value, int length);
+ const guint8 *value, int length, gpointer app_data);
/* @fn int bluetooth_gatt_init(void)
*