X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-api%2Fbt-adapter-le.c;h=d96c32a525743ebf80e97a2336c5225abcb2c1d9;hb=e0cd6c5eeaea9758bd579572a76b80536c0c4892;hp=05d282ce2ab0cf3b330da06b00c75f5287512fa0;hpb=9a796edfdd722dc13b471acd66423eb6667498fd;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-api/bt-adapter-le.c b/bt-api/bt-adapter-le.c old mode 100755 new mode 100644 index 05d282c..d96c32a --- a/bt-api/bt-adapter-le.c +++ b/bt-api/bt-adapter-le.c @@ -1,11 +1,5 @@ /* - * Bluetooth-frwk - * - * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: Hocheol Seo - * Girishashok Joshi - * Chanyeol Park + * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,6 +26,7 @@ #include "bt-event-handler.h" static gboolean is_le_scanning = FALSE; +static int is_scan_filter_supported = -1; BT_EXPORT_API int bluetooth_check_adapter_le(void) { @@ -40,9 +35,8 @@ BT_EXPORT_API int bluetooth_check_adapter_le(void) ret = _bt_get_adapter_path(_bt_gdbus_get_system_gconn(), NULL); - if (ret != BLUETOOTH_ERROR_NONE) { + if (ret != BLUETOOTH_ERROR_NONE) return BLUETOOTH_ADAPTER_LE_DISABLED; - } ret = vconf_get_int(VCONFKEY_BT_LE_STATUS, &value); if (ret != 0) { @@ -59,9 +53,6 @@ BT_EXPORT_API int bluetooth_enable_adapter_le(void) { int result; - retv_if(bluetooth_check_adapter_le() == BLUETOOTH_ADAPTER_LE_ENABLED, - BLUETOOTH_ERROR_DEVICE_ALREADY_ENABLED); - BT_INIT_PARAMS(); BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); @@ -109,6 +100,7 @@ BT_EXPORT_API int bluetooth_start_le_discovery(void) BT_INIT_PARAMS(); BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + BT_INFO_C("### Start LE scan"); result = _bt_send_request(BT_BLUEZ_SERVICE, BT_START_LE_DISCOVERY, in_param1, in_param2, in_param3, in_param4, &out_param); @@ -129,13 +121,13 @@ BT_EXPORT_API int bluetooth_stop_le_discovery(void) BT_INIT_PARAMS(); BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + BT_INFO_C("### Stop LE scan"); result = _bt_send_request(BT_BLUEZ_SERVICE, BT_STOP_LE_DISCOVERY, in_param1, in_param2, in_param3, in_param4, &out_param); BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); - if (result == BLUETOOTH_ERROR_NONE) - _bt_set_le_scan_status(FALSE); + _bt_set_le_scan_status(FALSE); return result; } @@ -165,6 +157,31 @@ BT_EXPORT_API int bluetooth_is_le_discovering(void) return is_discovering; } +BT_EXPORT_API gboolean bluetooth_is_scan_filter_supported(void) +{ + int result; + + if (is_scan_filter_supported == -1) { + BT_INIT_PARAMS(); + BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + result = _bt_send_request(BT_BLUEZ_SERVICE, BT_IS_SCAN_FILTER_SUPPORTED, + in_param1, in_param2, in_param3, in_param4, &out_param); + + if (result == BLUETOOTH_ERROR_NONE) + is_scan_filter_supported = g_array_index(out_param, int, 0); + else + BT_ERR("Fail to send request"); + + BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + } + + if (is_scan_filter_supported == 1) + return TRUE; + + return FALSE; +} + BT_EXPORT_API int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *filter, int *slot_id) { int result; @@ -179,11 +196,10 @@ BT_EXPORT_API int bluetooth_register_scan_filter(bluetooth_le_scan_filter_t *fil result = _bt_send_request(BT_BLUEZ_SERVICE, BT_REGISTER_SCAN_FILTER, in_param1, in_param2, in_param3, in_param4, &out_param); - if (result == BLUETOOTH_ERROR_NONE) { + if (result == BLUETOOTH_ERROR_NONE) *slot_id = g_array_index(out_param, int, 0); - } else { + else BT_ERR("Fail to send request"); - } BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); @@ -226,10 +242,9 @@ BT_EXPORT_API int bluetooth_unregister_all_scan_filters(void) return result; } -#ifdef TIZEN_WEARABLE gboolean __bluetooth_is_privileged_process(void) { - FILE *fp= NULL; + FILE *fp = NULL; char path[30] = {0, }; char buf[256] = {0, }; @@ -248,18 +263,16 @@ gboolean __bluetooth_is_privileged_process(void) fclose(fp); return FALSE; } -#endif BT_EXPORT_API int bluetooth_set_advertising(int handle, gboolean enable) { int result; - gboolean use_reserved_slot = FALSE; + gboolean use_reserved_slot = TRUE; BT_CHECK_ENABLED_ANY(return); -#ifdef TIZEN_WEARABLE - use_reserved_slot = __bluetooth_is_privileged_process(); -#endif + if (TIZEN_PROFILE_WEARABLE) + use_reserved_slot = __bluetooth_is_privileged_process(); BT_INIT_PARAMS(); BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); @@ -280,13 +293,12 @@ BT_EXPORT_API int bluetooth_set_custom_advertising(int handle, gboolean enable, bluetooth_advertising_params_t *params) { int result; - gboolean use_reserved_slot = FALSE; + gboolean use_reserved_slot = TRUE; BT_CHECK_ENABLED_ANY(return); -#ifdef TIZEN_WEARABLE + if (TIZEN_PROFILE_WEARABLE) use_reserved_slot = __bluetooth_is_privileged_process(); -#endif BT_INIT_PARAMS(); BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); @@ -335,7 +347,7 @@ BT_EXPORT_API int bluetooth_get_advertising_data(bluetooth_advertising_data_t *a BT_EXPORT_API int bluetooth_set_advertising_data(int handle, const bluetooth_advertising_data_t *value, int length) { int result; - gboolean use_reserved_slot = FALSE; + gboolean use_reserved_slot = TRUE; BT_CHECK_PARAMETER(value, return); BT_CHECK_ENABLED_ANY(return); @@ -343,9 +355,8 @@ BT_EXPORT_API int bluetooth_set_advertising_data(int handle, const bluetooth_adv if (length > BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX - 3) return BLUETOOTH_ERROR_INVALID_PARAM; -#ifdef TIZEN_WEARABLE - use_reserved_slot = __bluetooth_is_privileged_process(); -#endif + if (TIZEN_PROFILE_WEARABLE) + use_reserved_slot = __bluetooth_is_privileged_process(); BT_INIT_PARAMS(); BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); @@ -395,7 +406,7 @@ BT_EXPORT_API int bluetooth_set_scan_response_data(int handle, const bluetooth_scan_resp_data_t *value, int length) { int result; - gboolean use_reserved_slot = FALSE; + gboolean use_reserved_slot = TRUE; BT_CHECK_PARAMETER(value, return); BT_CHECK_ENABLED_ANY(return); @@ -403,9 +414,8 @@ BT_EXPORT_API int bluetooth_set_scan_response_data(int handle, if (length > BLUETOOTH_SCAN_RESP_DATA_LENGTH_MAX) return BLUETOOTH_ERROR_INVALID_PARAM; -#ifdef TIZEN_WEARABLE - use_reserved_slot = __bluetooth_is_privileged_process(); -#endif + if (TIZEN_PROFILE_WEARABLE) + use_reserved_slot = __bluetooth_is_privileged_process(); BT_INIT_PARAMS(); BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); @@ -454,11 +464,10 @@ BT_EXPORT_API int bluetooth_is_advertising(gboolean *is_advertising) result = _bt_send_request(BT_BLUEZ_SERVICE, BT_IS_ADVERTISING, in_param1, in_param2, in_param3, in_param4, &out_param); - if (result == BLUETOOTH_ERROR_NONE) { + if (result == BLUETOOTH_ERROR_NONE) *is_advertising = g_array_index(out_param, int, 0); - } else { + else BT_ERR("Fail to send request"); - } BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); @@ -543,6 +552,25 @@ BT_EXPORT_API int bluetooth_enable_le_privacy(gboolean enable_privacy) return result; } +BT_EXPORT_API int bluetooth_set_le_static_random_address(gboolean enable) +{ + int result; + + BT_CHECK_ENABLED_ANY(return); + + BT_INIT_PARAMS(); + BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + g_array_append_vals(in_param1, &enable, sizeof(gboolean)); + + result = _bt_send_request(BT_BLUEZ_SERVICE, BT_SET_LE_STATIC_RANDOM_ADDRESS, + in_param1, in_param2, in_param3, in_param4, &out_param); + + BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); + + return result; +} + BT_EXPORT_API int bluetooth_check_privilege_advertising_parameter(void) { if (_bt_check_privilege(BT_CHECK_PRIVILEGE, BT_SET_ADVERTISING_PARAMETERS) @@ -620,9 +648,8 @@ BT_EXPORT_API int bluetooth_le_write_host_suggested_default_data_length( BT_LE_WRITE_HOST_SUGGESTED_DATA_LENGTH, in_param1, in_param2, in_param3, in_param4, &out_param); - if (result != BLUETOOTH_ERROR_NONE) { + if (result != BLUETOOTH_ERROR_NONE) BT_ERR("Failed to Write the host suggested default data length values : %d", result); - } BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param); @@ -674,9 +701,8 @@ BT_EXPORT_API int bluetooth_le_set_data_length(bluetooth_device_address_t *addre BT_LE_SET_DATA_LENGTH, in_param1, in_param2, in_param3, in_param4, &out_param); - if (result != BLUETOOTH_ERROR_NONE) { + if (result != BLUETOOTH_ERROR_NONE) BT_ERR("Failed to Set data length values : %d", result); - } BT_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);