X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-api%2Fbt-common.c;h=39b54803a6f4a17a909073c891a19d6e3ad94c7d;hb=9c4f5a830815e5dba0184a2ef3ecfe4bb7bdd40f;hp=a4dbd38ba0e892690ef601145fa597c1cdacee3e;hpb=8f2a1a80ea6ab6acff34c205f6f9a2acea33b501;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-api/bt-common.c b/bt-api/bt-common.c index a4dbd38..39b5480 100644 --- a/bt-api/bt-common.c +++ b/bt-api/bt-common.c @@ -133,11 +133,11 @@ bt_user_info_t *_bt_get_user_data(int type) return &user_info[type]; } -int _bt_common_send_rfcomm_rx_details(bluetooth_rfcomm_received_data_t *data) +int _bt_common_send_rfcomm_rx_details(unsigned int len) { uid_t uid = getuid(); pid_t pid = getpid(); - int size = data->buffer_size; + unsigned int size = len; int ret = BLUETOOTH_ERROR_NONE; BT_INFO("+"); @@ -146,7 +146,7 @@ int _bt_common_send_rfcomm_rx_details(bluetooth_rfcomm_received_data_t *data) g_array_append_vals(in_param1, &uid, sizeof(uid_t)); g_array_append_vals(in_param2, &pid, sizeof(pid_t)); - g_array_append_vals(in_param3, &size, sizeof(int)); + g_array_append_vals(in_param3, &size, sizeof(unsigned int)); ret = _bt_send_request(BT_BLUEZ_SERVICE, BT_RFCOMM_SEND_RX_DETAILS, in_param1, in_param2, in_param3, in_param4, &out_param); @@ -156,11 +156,11 @@ int _bt_common_send_rfcomm_rx_details(bluetooth_rfcomm_received_data_t *data) return ret; } -int _bt_common_send_rfcomm_tx_details(int len) +int _bt_common_send_rfcomm_tx_details(unsigned int len) { uid_t uid = getuid(); pid_t pid = getpid(); - int size = len; + unsigned int size = len; int ret = BLUETOOTH_ERROR_NONE; BT_INFO("+"); @@ -169,20 +169,45 @@ int _bt_common_send_rfcomm_tx_details(int len) g_array_append_vals(in_param1, &uid, sizeof(uid_t)); g_array_append_vals(in_param2, &pid, sizeof(pid_t)); - g_array_append_vals(in_param3, &size, sizeof(int)); + g_array_append_vals(in_param3, &size, sizeof(unsigned int)); ret = _bt_send_request(BT_BLUEZ_SERVICE, BT_RFCOMM_SEND_TX_DETAILS, in_param1, in_param2, in_param3, in_param4, &out_param); BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); - BT_DBG("-"); + BT_INFO("-"); return ret; } +int _bt_common_send_rfcomm_conn_info(int role, gboolean connected, int socket_fd) +{ + int result = BLUETOOTH_ERROR_NONE; + + if (bluetooth_get_battery_monitor_state() == 0) { + BT_DBG("Battery monitor state is off"); + return BLUETOOTH_ERROR_NONE; + } + + BT_INIT_PARAMS(); + BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + g_array_append_vals(in_param1, &role, sizeof(int)); + g_array_append_vals(in_param2, &connected, sizeof(gboolean)); + g_array_append_vals(in_param3, &socket_fd, sizeof(int)); + + result = _bt_send_request(BT_BLUEZ_SERVICE, BT_RFCOMM_UPDATE_CONNECTION_INFO, + in_param1, in_param2, in_param3, in_param4, &out_param); + + BT_DBG("result: %x", result); + + BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + return result; +} + void _bt_common_event_cb(int event, int result, void *param, void *callback, void *user_data) { - BT_DBG("+"); bluetooth_event_param_t bt_event = { 0, }; bt_event.event = event; bt_event.result = result; @@ -281,13 +306,11 @@ void _bt_gatt_client_event_cb(int event, int result, void *param, void _bt_gatt_server_event_cb(int event, int result, void *param, void *callback, void *user_data) { - BT_INFO("__bt_gatt_server_event_cb"); gatt_server_event_param_t bt_event = { 0, 0, NULL, NULL }; bt_event.event = event; bt_event.result = result; bt_event.param_data = param; if (callback) { - BT_INFO("GATT Server event callback is registered"); ((gatt_server_cb_func_ptr)callback)(bt_event.event, &bt_event, user_data); } else { @@ -590,6 +613,9 @@ const char *_bt_convert_service_function_to_string(int function) {BT_SET_SPEAKER_GAIN, "BT_SET_SPEAKER_GAIN"}, {BT_SET_CONTENT_PROTECT, "BT_SET_CONTENT_PROTECT"}, {BT_AUDIO_SELECT_ROLE, "BT_AUDIO_SELECT_ROLE"}, + {BT_AUDIO_SET_ABSOLUTE_VOLUME, "BT_AUDIO_SET_ABSOLUTE_VOLUME"}, + {BT_AUDIO_GET_ABSOLUTE_VOLUME, "BT_AUDIO_GET_ABSOLUTE_VOLUME"}, + {BT_AUDIO_IS_AVC_ACTIVATED, "BT_AUDIO_IS_AVC_ACTIVATED"}, {BT_OOB_READ_LOCAL_DATA, "BT_OOB_READ_LOCAL_DATA"}, {BT_OOB_ADD_REMOTE_DATA, "BT_OOB_ADD_REMOTE_DATA"}, {BT_OOB_REMOVE_REMOTE_DATA, "BT_OOB_REMOVE_REMOTE_DATA"}, @@ -1579,7 +1605,7 @@ int _bt_discover_service_uuids(char *address, char *remote_uuid) GVariant *value = NULL; GVariant *ret = NULL; int result = BLUETOOTH_ERROR_INTERNAL; - BT_INFO("+"); + retv_if(remote_uuid == NULL, BLUETOOTH_ERROR_INTERNAL); gconn = _bt_get_system_private_conn(); retv_if(gconn == NULL, BLUETOOTH_ERROR_INTERNAL); @@ -1745,15 +1771,30 @@ int _bt_disconnect_ext_profile(char *address, char *path) { GDBusProxy *proxy; char *object_path; + GDBusConnection *gconn; + GError *err = NULL; object_path = _bt_get_device_object_path(address); if (object_path == NULL) return BLUETOOTH_ERROR_INTERNAL; - proxy = __bt_gdbus_get_device_proxy(object_path); + gconn = _bt_get_system_shared_conn(); + if (gconn == NULL) { + g_free(object_path); + return BLUETOOTH_ERROR_INTERNAL; + } + + proxy = g_dbus_proxy_new_sync(gconn, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, + NULL, BT_BLUEZ_NAME, + object_path, + BT_DEVICE_INTERFACE, + NULL, &err); + g_free(object_path); - if (proxy == NULL) { - BT_ERR("Error while getting proxy"); + + if (proxy == NULL && err) { + BT_ERR("Unable to create proxy: %s", err->message); + g_clear_error(&err); return BLUETOOTH_ERROR_INTERNAL; } @@ -2493,6 +2534,8 @@ BT_EXPORT_API int bluetooth_unregister_callback(void) _bt_set_obex_server_id(BT_NO_SERVER); + _bt_reset_battery_monitor_info(); + _bt_gdbus_deinit_proxys(); if (profile_gproxy) {