#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
*/
} 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 {
BLUETOOTH_EVENT_OTP_NOTIFICATION_ENABLED, /* OTP Notification Enabled Response */
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_type_t;
/**
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
*/
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);
+
+/**
* @}
*/