/*
- * Bluetooth-frwk
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Hocheol Seo <hocheol.seo@samsung.com>
- * Girishashok Joshi <girish.joshi@samsung.com>
- * Chanyeol Park <chanyeol.park@samsung.com>
+ * 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.
#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)
{
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) {
{
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);
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);
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);
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;
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);
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, };
fclose(fp);
return FALSE;
}
-#endif
BT_EXPORT_API int bluetooth_set_advertising(int handle, gboolean enable)
{
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);
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);
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);
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);
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);
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)
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);
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);