int bt_device_le_conn_update(const char *device_address,\r
const bt_le_conn_update_s *parameters);\r
\r
+/**\r
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE\r
+ * @brief Registers the method for HID Device role\r
+ * @since_tizen 2.3.1\r
+ * @privlevel platform\r
+ * @privilege %http://tizen.org/privilege/bluetooth.admin\r
+ *\r
+ * @remarks This function must be called to register HID UUID\r
+ * then only remote device could be able identify this one as HID device\r
+ *\r
+ * @param[in] callback The callback called when the connection state is changed\r
+ * @param[in] user_data The user data to be passed to the callback function\r
+ * @return 0 on success, otherwise a negative error value.\r
+ * @retval #BT_ERROR_NONE Successful\r
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized\r
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter\r
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled\r
+ * @retval #BT_ERROR_NOW_IN_PROGRESS Already activated\r
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed\r
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied\r
+ * @retval #BT_ERROR_NOT_SUPPORTED Not supported\r
+ *\r
+ * @pre The Bluetooth service must be initialized with bt_initialize().\r
+ * @see bt_initialize()\r
+ * @see bt_hid_device_deactivate()\r
+ */\r
+int bt_hid_device_activate(bt_hid_device_connection_state_changed_cb callback, void * user_data);\r
+\r
+/**\r
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE\r
+ * @brief Unregisters the method for HID Device role\r
+ * @since_tizen 2.3.1\r
+ * @privlevel platform\r
+ * @privilege %http://tizen.org/privilege/bluetooth.admin\r
+ *\r
+ * @remarks This function must be called to deregister HID UUID\r
+ *\r
+ * @param[in] socket_fd on which uuid need to be deregistered.\r
+ * @return 0 on success, otherwise a negative error value.\r
+ * @retval #BT_ERROR_NONE Successful\r
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized\r
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter\r
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled\r
+ * @retval #BT_ERROR_NOT_IN_PROGRESS Not activated\r
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed\r
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied\r
+ *\r
+ * @pre The Bluetooth service must be initialized with bt_initialize().\r
+ * @see bt_initialize()\r
+ * @see bt_hid_device_activate()\r
+ */\r
+int bt_hid_device_deactivate(void);\r
+\r
+/**\r
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE\r
+ * @brief Initiates HID device Connection with device role\r
+ * @since_tizen 2.3.1\r
+ * @privlevel platform\r
+ * @privilege %http://tizen.org/privilege/bluetooth.admin\r
+ *\r
+ * @remarks This function must be called to Initiate Hid device role connection\r
+ *\r
+ * @param[in] remote_address device address of remote device.\r
+ * @return 0 on success, otherwise a negative error value.\r
+ * @retval #BT_ERROR_NONE Successful\r
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized\r
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter\r
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled\r
+ * @retval #BT_ERROR_NOT_IN_PROGRESS Not activated\r
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed\r
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied\r
+ * @retval #BT_ERROR_ALREADY_DONE Already connected\r
+ *\r
+ * @pre The Bluetooth service must be initialized with bt_initialize().\r
+ * @see bt_initialize()\r
+ * @see bt_hid_device_activate()\r
+ */\r
+int bt_hid_device_connect(const char *remote_address);\r
+\r
+/**\r
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE\r
+ * @brief Disconnects the connection with HID Host device.\r
+ * @since_tizen 2.3.1\r
+ * @privlevel platform\r
+ * @privilege %http://tizen.org/privilege/bluetooth.admin\r
+ *\r
+ * @param[in] remote_address device address of remote device.\r
+ * @return 0 on success, otherwise a negative error value.\r
+ * @retval #BT_ERROR_NONE Successful\r
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized\r
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled\r
+ * @retval #BT_ERROR_REMOTE_DEVICE_NOT_CONNECTED Remote device is not connected\r
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed\r
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied\r
+ *\r
+ * @pre The Bluetooth service must be initialized with bt_initialize().\r
+ * @see bt_initialize()\r
+ * @see bt_hid_device_connection_state_changed_cb()\r
+ */\r
+int bt_hid_device_disconnect(const char *remote_address);\r
+\r
+/**\r
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE\r
+ * @brief Sends the mouse event data.\r
+ * @since_tizen 2.3.1\r
+ * @privlevel platform\r
+ * @privilege %http://tizen.org/privilege/bluetooth.admin\r
+ *\r
+ * @param[in] remote_address device address of remote device.\r
+ * @param[in] mouse_data mouse data that need to be passed to remote device\r
+ * @return 0 on success, otherwise a negative error value.\r
+ * @retval #BT_ERROR_NONE Successful\r
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized\r
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter\r
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed\r
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied\r
+ *\r
+ * @pre The HID connection must be established.\r
+ * @see bt_hid_device_connection_state_changed_cb()\r
+ */\r
+int bt_hid_device_send_mouse_event(const char *remote_address,\r
+ const bt_hid_mouse_data_s *mouse_data);\r
+\r
+/**\r
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE\r
+ * @brief Sends the keyboard event data.\r
+ * @since_tizen 2.3.1\r
+ * @privlevel platform\r
+ * @privilege %http://tizen.org/privilege/bluetooth.admin\r
+ *\r
+ * @param[in] remote_address device address of remote device.\r
+ * @param[in] key_data key data the need to be passed to remote device\r
+ * @return 0 on success, otherwise a negative error value.\r
+ * @retval #BT_ERROR_NONE Successful\r
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized\r
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter\r
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed\r
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied\r
+ *\r
+ * @pre The HID connection must be established.\r
+ * @see bt_hid_device_connection_state_changed_cb()\r
+ */\r
+int bt_hid_device_send_key_event(const char *remote_address,\r
+ const bt_hid_key_data_s *key_data);\r
+\r
+/**\r
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE\r
+ * @brief Sets the callback when device gets some data from HID Host.\r
+ * @since_tizen 2.3.1\r
+ *\r
+ * @param[in] callback callback function to be set when data is received.\r
+ * @param[in] user_data data from application which will be provided in callback.\r
+ * @retval #BT_ERROR_NONE Successful\r
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized\r
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter\r
+ *\r
+ * @see bt_hid_device_connection_state_changed_cb()\r
+ */\r
+int bt_hid_device_set_data_received_cb(bt_hid_device_data_received_cb callback, void *user_data);\r
+\r
+/**\r
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE\r
+ * @brief Unsets the callback when device gets some data from HID Host.\r
+ * @since_tizen 2.3.1\r
+ *\r
+ * @retval #BT_ERROR_NONE Successful\r
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized\r
+ *\r
+ * @see bt_hid_device_connection_state_changed_cb()\r
+ */\r
+int bt_hid_device_unset_data_received_cb(void);\r
+\r
+/**\r
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE\r
+ * @brief Responds to the reports from HID Host.\r
+ * @since_tizen 2.3.1\r
+ * @privlevel platform\r
+ * @privilege %http://tizen.org/privilege/bluetooth.admin\r
+ *\r
+ * @param[in] remote_address device address of remote device.\r
+ * @param[in] htype Header type to be there in response\r
+ * @param[in] ptype Parameter type to be there in response.\r
+ * @param[in] data Data to be present in data payload of response.\r
+ * @param[in] data_len The length of the response data\r
+ * @retval #BT_ERROR_NONE Successful\r
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized\r
+ * @retval #BT_ERROR_NOT_ENABLED Not enabled\r
+ * @retval #BT_ERROR_OPERATION_FAILED Operation failed\r
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied\r
+ *\r
+ * @pre The HID connection must be established.\r
+ * @see bt_hid_device_connection_state_changed_cb()\r
+ */\r
+int bt_hid_device_reply_to_report(const char *remote_address,\r
+ bluetooth_hid_header_type_t htype, bluetooth_hid_param_type_t ptype,\r
+ const char *data, unsigned int data_len);\r
+\r
/**\r
* @}\r
*/\r
int _bt_gatt_client_update_all(bt_gatt_client_h client);
-/* HID device related type */
-typedef struct
-{
- unsigned char btcode;
- unsigned char rep_id;
- unsigned char button;
- signed char axis_x;
- signed char axis_y;
- signed char axis_z;
-} bt_hid_mouse_data_s;
-
-typedef struct
-{
- unsigned char btcode;
- unsigned char rep_id;
- unsigned char modify;
- unsigned char key[8];
-} bt_hid_key_data_s;
-
-typedef enum {
- BT_HID_HEADER_HANDSHAKE,
- BT_HID_HEADER_HID_CONTROL,
- BT_HID_HEADER_GET_REPORT,
- BT_HID_HEADER_SET_REPORT,
- BT_HID_HEADER_GET_PROTOCOL,
- BT_HID_HEADER_SET_PROTOCOL,
- BT_HID_HEADER_DATA,
- BT_HID_HEADER_UNKNOWN
-} bluetooth_hid_header_type_t;
-
-typedef enum {
- BT_HID_PARAM_DATA_RTYPE_INPUT,
- BT_HID_PARAM_DATA_RTYPE_OUTPUT
-} bluetooth_hid_param_type_t;
-
-typedef struct
-{
- const char *address;
- bluetooth_hid_header_type_t type;
- bluetooth_hid_param_type_t param;
- int data_size; /**< The length of the received data */
- const char *data; /**< The received data */
-} bt_hid_device_received_data_s;
-
-typedef void (*bt_hid_device_connection_state_changed_cb) (int result,
- bool connected, const char *remote_address, void *user_data);
-
-typedef void (*bt_hid_device_data_received_cb)(const bt_hid_device_received_data_s *data, void *user_data);
-/* HID device related type */
-
#ifdef __cplusplus
}
#endif
BT_PANU_SERVICE_TYPE_NAP = 0, /**< Network Access Point */
} bt_panu_service_type_e;
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Enumerations for the types of HID header type
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_HID_HEADER_HANDSHAKE,
+ BT_HID_HEADER_HID_CONTROL,
+ BT_HID_HEADER_GET_REPORT,
+ BT_HID_HEADER_SET_REPORT,
+ BT_HID_HEADER_GET_PROTOCOL,
+ BT_HID_HEADER_SET_PROTOCOL,
+ BT_HID_HEADER_DATA,
+ BT_HID_HEADER_UNKNOWN
+} bluetooth_hid_header_type_t;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Enumerations for the types of HID param type
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_HID_PARAM_DATA_RTYPE_INPUT,
+ BT_HID_PARAM_DATA_RTYPE_OUTPUT
+} bluetooth_hid_param_type_t;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Enumerations for the types of HID handshake type
+ * @since_tizen 3.0
+ */
+typedef enum {
+ BT_HID_HANDSHAKE_SUCCESSFUL = 0x00, /**< Handshake error code none */
+ BT_HID_HANDSHAKE_NOT_READY, /**< Handshake error code Not Ready */
+ BT_HID_HANDSHAKE_ERR_INVALID_REPORT_ID, /**< Handshake error code send invalid report id */
+ BT_HID_HANDSHAKE_ERR_UNSUPPORTED_REQUEST, /**< Handshake error code request unsupported request */
+ BT_HID_HANDSHAKE_ERR_INVALID_PARAMETER, /**< Handshake error code received invalid parameter */
+ BT_HID_HANDSHAKE_ERR_UNKNOWN = 0x0e, /**< unkown error */
+ BT_HID_HANDSHAKE_ERR_FATAL /**< Fatal error */
+} bluetooth_hid_handshake_type_t;
+
/**
* @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
* @brief The handle to control Bluetooth LE advertising
char *data; /**< The received data */
} bt_socket_received_data_s;
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief HID Mouse data type; used to send mouse event
+ * @since_tizen 3.0
+ *
+ * @see bt_hid_device_send_mouse_event()
+ */
+typedef struct
+{
+ unsigned char btcode;
+ unsigned char rep_id;
+ unsigned char button;
+ signed char axis_x;
+ signed char axis_y;
+ signed char axis_z;
+} bt_hid_mouse_data_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief HID Key data; used to send HID key event
+ * @since_tizen 3.0
+ *
+ * @see bt_hid_device_send_key_event()
+ */
+typedef struct
+{
+ unsigned char btcode;
+ unsigned char rep_id;
+ unsigned char modify;
+ unsigned char key[8];
+} bt_hid_key_data_s;
+
+typedef struct
+{
+ const char *address;
+ bluetooth_hid_header_type_t type;
+ bluetooth_hid_param_type_t param;
+ int data_size; /**< The length of the received data */
+ const char *data; /**< The received data */
+} bt_hid_device_received_data_s;
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Called when the HID Device connection state changes.
+ * @since_tizen 3.0
+ *
+ * @param[in] result The result of the HID device state changing
+ * @param[in] connected Whether the device is connected
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @see bt_hid_device_activate()
+ */
+typedef void (*bt_hid_device_connection_state_changed_cb) (int result,
+ bool connected, const char *remote_address, void *user_data);
+
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_HID_MODULE
+ * @brief Called when any data is received from host device.
+ * @since_tizen 3.0
+ *
+ * @param[in] data The callback to be set/called upon data receive
+ * @param[in] user_data The user data passed from the callback registration function
+ *
+ * @see bt_hid_device_set_data_received_cb()
+ */
+typedef void (*bt_hid_device_data_received_cb)(const bt_hid_device_received_data_s *data,
+ void *user_data);
+
/**
* @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
* @brief Called when the Bluetooth adapter state changes.
#include "bluetooth.h"
#include "bluetooth_private.h"
+#include "bluetooth_internal.h"
static bool is_hid_host_initialized = false;
int error;
BT_CHECK_HID_DEVICE_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
BT_DBG("+");
error = bluetooth_hid_device_connect(remote_address);
error = _bt_get_error_code(error);
int error;
BT_CHECK_HID_DEVICE_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
error = bluetooth_hid_device_disconnect(remote_address);
error = _bt_get_error_code(error);
if (error != BT_ERROR_NONE)
int ret;
BT_CHECK_HID_DEVICE_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
+ BT_CHECK_INPUT_PARAMETER(mouse_data);
ret = bluetooth_hid_device_send_mouse_event(remote_address,
*(hid_send_mouse_event_t*)mouse_data);
int ret;
BT_CHECK_HID_DEVICE_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
+ BT_CHECK_INPUT_PARAMETER(key_data);
ret = bluetooth_hid_device_send_key_event(remote_address,
*(hid_send_key_event_t*)key_data);
int ret;
BT_CHECK_HID_DEVICE_SUPPORT();
BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(remote_address);
+
ret = bluetooth_hid_device_reply_to_report(remote_address, htype,
ptype, data, data_len);
if (ret <= 0) {
return BT_ERROR_NONE;
}
-int bt_hid_device_unset_data_received_cb()
+int bt_hid_device_unset_data_received_cb(void)
{
BT_CHECK_HID_DEVICE_SUPPORT();
BT_CHECK_INIT_STATUS();
{"bt_hid_host_deinitialize" , BT_UNIT_TEST_FUNCTION_HID_HOST_DEINITIALIZE},
{"bt_hid_host_connect" , BT_UNIT_TEST_FUNCTION_HID_HOST_CONNECT},
{"bt_hid_host_disconnect" , BT_UNIT_TEST_FUNCTION_HID_HOST_DISCONNECT},
+ {"bt_hid_device_activate" , BT_UNIT_TEST_FUNCTION_HID_DEVICE_ACTIVATE},
+ {"bt_hid_device_connect" , BT_UNIT_TEST_FUNCTION_HID_DEVICE_CONNECT},
+ {"bt_hid_device_disconnect" , BT_UNIT_TEST_FUNCTION_HID_DEVICE_DISCONNECT},
+ {"bt_hid_device_deactivate" , BT_UNIT_TEST_FUCNTION_HID_DEVICE_DEACTIVATE},
+ {"bt_hid_device_send_mouse_event" , BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT},
+ {"bt_hid_device_send_key_event" , BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_KEY_EVENT},
+ {"bt_hid_device_set_data_received_cb " , BT_UNIT_TEST_FUNCTION_HID_DEVICE_SET_DATA_RECEIVED_CB},
+ {"bt_hid_device_unset_data_received_cd" , BT_UNIT_TEST_FUNCTION_HID_DEVICE_UNSET_DATA_RECEIVED_CB},
{"Select this menu to set parameters and then select the function again." , BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS},
{NULL , 0x0000},
};
TC_PRT("Size: %d", data->data_size);
}
+static void __bt_hid_device_data_received_cb(const bt_hid_device_received_data_s *data, void *user_data)
+{
+ TC_PRT("+");
+ char val = 0x01;
+ int ret = 0;
+ if (data == NULL) {
+ TC_PRT("No received data");
+ return;
+ }
+ TC_PRT("Address: %s", data->address);
+ TC_PRT("Type: %d", data->type);
+ TC_PRT("Param: %d", data->param);
+ switch(data->type) {
+ case BT_HID_HEADER_HANDSHAKE:
+ TC_PRT("HANDSHAKE data");
+ break;
+ case BT_HID_HEADER_HID_CONTROL:
+ TC_PRT("HID Control data");
+ ret = bt_hid_device_disconnect(remote_addr);
+ TC_PRT("ret %d", ret);
+ break;
+ case BT_HID_HEADER_GET_REPORT:
+ TC_PRT("GET_REPORT data");
+ TC_PRT("ReportId %d", data->data[1]);
+ bt_hid_key_data_s send_data;
+ /* Will send character 'a' */
+ char pressedkey[8] = { 4, 0, 0, 0, 0, 0, 0, 0 };
+ memcpy(send_data.key, pressedkey, 8);
+ send_data.modify = 0;
+ if (data->data[1] == 0x02) {
+ ret = bt_hid_device_reply_to_report(remote_addr,BT_HID_HEADER_GET_REPORT,
+ BT_HID_PARAM_DATA_RTYPE_INPUT,
+ (const char*)&send_data, sizeof(send_data));
+ } else if (data->data[1] == 0x01) {
+ TC_PRT("Send Mouse Event");
+ } else {
+ TC_PRT("Invalid ReportId");
+ val = BT_HID_HANDSHAKE_ERR_INVALID_REPORT_ID;
+ ret = bt_hid_device_reply_to_report(remote_addr,BT_HID_HEADER_HANDSHAKE,
+ BT_HID_PARAM_DATA_RTYPE_INPUT,
+ &val, sizeof(val));
+ }
+ TC_PRT("ret %d", ret);
+ break;
+ case BT_HID_HEADER_SET_REPORT:
+ TC_PRT("SET_REPORT data");
+ break;
+ case BT_HID_HEADER_DATA:
+ TC_PRT("TRANs DATA");
+ break;
+ case BT_HID_HEADER_GET_PROTOCOL:
+ TC_PRT("GET PROTOCOL");
+ ret = bt_hid_device_reply_to_report(remote_addr,BT_HID_HEADER_GET_PROTOCOL,
+ BT_HID_PARAM_DATA_RTYPE_INPUT,
+ &val, sizeof(val));
+ TC_PRT("ret %d", ret);
+ break;
+ case BT_HID_HEADER_SET_PROTOCOL:
+ TC_PRT("SET PROTOCOL");
+ val = BT_HID_HANDSHAKE_SUCCESSFUL;
+ ret = bt_hid_device_reply_to_report(remote_addr,BT_HID_HEADER_HANDSHAKE,
+ BT_HID_PARAM_DATA_RTYPE_INPUT,
+ &val, sizeof(val));
+ TC_PRT("ret %d", ret);
+ break;
+ default:
+ TC_PRT("Unkonw");
+ break;
+ }
+ switch(data->param) {
+ case BT_HID_PARAM_DATA_RTYPE_INPUT:
+ TC_PRT("Input Report");
+ break;
+ case BT_HID_PARAM_DATA_RTYPE_OUTPUT:
+ TC_PRT("Output Report");
+ break;
+ }
+}
+
static void __bt_socket_connection_requested_cb(int socket_fd, const char *remote_address, void *user_data)
{
TC_PRT("Socket fd: %d", socket_fd);
TC_PRT("result: %s", __bt_get_error_message(result));
}
+void __bt_hid_device_connection_state_changed_cb(int result,
+ bool connected, const char *remote_address, void *user_data)
+{
+ TC_PRT("__bt_hid_device_connection_state_changed_cb:");
+ TC_PRT("result: %s", __bt_get_error_message(result));
+ TC_PRT("Remote Address %s", remote_address);
+ TC_PRT("Connected %d", connected);
+}
+
#ifdef TIZEN_WEARABLE
void __bt_hf_sco_state_changed_cb(int result, bool opened, void *user_data)
{
TC_PRT("returns %s\n", __bt_get_error_message(ret));
break;
}
+ case BT_UNIT_TEST_FUNCTION_HID_DEVICE_ACTIVATE: {
+ ret = bt_hid_device_activate(__bt_hid_device_connection_state_changed_cb,
+ NULL);
+ TC_PRT("returns %s", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_HID_DEVICE_CONNECT: {
+ ret = bt_hid_device_connect(remote_addr);
+ TC_PRT("returns %s", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUCNTION_HID_DEVICE_DEACTIVATE: {
+ ret = bt_hid_device_deactivate();
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_HID_DEVICE_DISCONNECT: {
+ ret = bt_hid_device_disconnect(remote_addr);
+ TC_PRT("return %s", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_MOUSE_EVENT: {
+ bt_hid_mouse_data_s send_data;
+ int i;
+
+ send_data.button = 1;
+ send_data.axis_z = 0x00;
+
+ send_data.axis_x = 10;
+ send_data.axis_y = 0;
+ for (i = 0; i < 30; i++) {
+ usleep(30000);
+ ret = bt_hid_device_send_mouse_event(remote_addr,&send_data);
+ if (ret < 0)
+ TC_PRT("returns %d\n", ret);
+ }
+ send_data.axis_x = 0;
+ send_data.axis_y = 10;
+ for (i = 0; i < 30; i++) {
+ usleep(30000);
+ ret = bt_hid_device_send_mouse_event(remote_addr,&send_data);
+ if (ret < 0)
+ TC_PRT("returns %d\n", ret);
+ }
+ send_data.axis_x = -10;
+ send_data.axis_y = 0;
+ for (i = 0; i < 60; i++) {
+ usleep(30000);
+ ret = bt_hid_device_send_mouse_event(remote_addr,&send_data);
+ if (ret < 0)
+ TC_PRT("returns %d\n", ret);
+ }
+ send_data.axis_x = 0;
+ send_data.axis_y = -10;
+ for (i = 0; i < 60; i++) {
+ usleep(30000);
+ ret = bt_hid_device_send_mouse_event(remote_addr,&send_data);
+ if (ret < 0)
+ TC_PRT("returns %d\n", ret);
+ }
+ send_data.axis_x = 10;
+ send_data.axis_y = 0;
+ for (i = 0; i < 60; i++) {
+ usleep(30000);
+ ret = bt_hid_device_send_mouse_event(remote_addr,&send_data);
+ if (ret < 0)
+ TC_PRT("returns %d\n", ret);
+ }
+ send_data.axis_x = 0;
+ send_data.axis_y = 10;
+ for (i = 0; i < 30; i++) {
+ usleep(30000);
+ ret = bt_hid_device_send_mouse_event(remote_addr,&send_data);
+ if (ret < 0)
+ TC_PRT("returns %d\n", ret);
+ }
+ send_data.axis_x = -10;
+ send_data.axis_y = 0;
+ for (i = 0; i < 30; i++) {
+ usleep(30000);
+ ret = bt_hid_device_send_mouse_event(remote_addr,&send_data);
+ if (ret < 0)
+ TC_PRT("returns %d\n", ret);
+ }
+ TC_PRT("Completed");
+
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SEND_KEY_EVENT: {
+ bt_hid_key_data_s send_data;
+ /* Will send character 'a' */
+ char pressedkey[8] = { 4, 0, 0, 0, 0, 0, 0, 0 };
+ char pressedkey1[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+ memcpy(send_data.key, pressedkey, 8);
+ send_data.modify = 0;
+ ret = bt_hid_device_send_key_event(remote_addr,&send_data);
+ TC_PRT("returns %d\n", ret);
+ memcpy(send_data.key, pressedkey1, 8);
+ ret = bt_hid_device_send_key_event(remote_addr,&send_data);
+ TC_PRT("returns %d\n", ret);
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_HID_DEVICE_SET_DATA_RECEIVED_CB: {
+ ret = bt_hid_device_set_data_received_cb(__bt_hid_device_data_received_cb, NULL);
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
+ case BT_UNIT_TEST_FUNCTION_HID_DEVICE_UNSET_DATA_RECEIVED_CB: {
+ ret = bt_hid_device_unset_data_received_cb();
+ TC_PRT("returns %s\n", __bt_get_error_message(ret));
+ break;
+ }
case BT_UNIT_TEST_FUNCTION_ACTIVATE_FLAG_TO_SET_PARAMETERS:
need_to_set_params = true;
TC_PRT("Select the function again");