{
return _bt_hal_dbus_disable_le();
}
+
+int _bt_hal_set_le_static_random_address(uint8_t enable)
+{
+ DBG("+");
+ GError *error = NULL;
+ GVariant *ret;
+ GDBusProxy *proxy;
+
+ proxy = _bt_hal_get_adapter_proxy();
+ if (proxy == NULL)
+ return BT_STATUS_FAIL;
+
+ ret = g_dbus_proxy_call_sync(proxy, "SetLeStaticRandomAddress",
+ g_variant_new("(b)", (enable ? TRUE : FALSE)),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ &error);
+
+ if (error) {
+ ERR("Set static address Fail: %s", error->message);
+ g_clear_error(&error);
+ return BT_STATUS_FAIL;
+ }
+
+ INFO("Set le static address [%d]", enable);
+ if (ret)
+ g_variant_unref(ret);
+
+ return BT_STATUS_SUCCESS;
+}
#endif
static void __bt_hal_free_le_adv_slot(void)
int _bt_hal_le_enable(void);
int _bt_hal_le_disable(void);
+
+int _bt_hal_set_le_static_random_address(uint8_t enable);
#endif
void _bt_hal_register_gatt_le_dbus_handler_cb(handle_stack_msg cb);
.enable_rssi_monitoring = enable_rssi_monitoring,
.get_connected_link_rssi_strength = get_connected_link_rssi_strength,
.enable_gap_auth_notifications = enable_gap_auth_notifications,
+ .set_le_static_random_address = _bt_hal_set_le_static_random_address,
.set_hal_adapter_request_state = set_hal_adapter_request_state,
.set_hal_le_request_state = set_hal_le_request_state,
#endif
* type == value from bt_gap_auth_variant_t
*/
int (*enable_gap_auth_notifications)(uint32_t type, uint8_t enable);
+
+ int (*set_le_static_random_address)(uint8_t enable);
+
/*
* Sets is_activating variable in HAL to TRUE. It is required for the
* adapter switched on event to propagate to upper layers from HAL.
*/
oal_status_t adapter_ble_multi_adv_disable(int instance_id);
+oal_status_t adapter_set_le_static_random_address(int enable);
+
/**
* @brief Check if the advertising is enable
*
return OAL_STATUS_SUCCESS;
}
+oal_status_t adapter_set_le_static_random_address(int enable)
+{
+ int ret;
+
+ CHECK_OAL_INITIALIZED();
+ API_TRACE("%d", enable);
+
+#ifdef TIZEN_BT_HAL
+ ret = blued_api->set_le_static_random_address((enable ? 1 : 0));
+ if (ret != BT_STATUS_SUCCESS)
+ BT_ERR("Static address set failed: [%s]", status2string(ret));
+ ret = convert_to_oal_status(ret);
+#else
+ BT_INFO("Not Supported");
+ ret = OAL_STATUS_NOT_SUPPORT;
+#endif
+
+ return ret;
+}
+
static void cb_adapter_properties(bt_status_t status,
int num_properties,
bt_property_t *properties)
/*************************************** LE Scan APIs *********************************************/
+
+int _bt_set_le_static_random_address(gboolean is_enable)
+{
+ int result = BLUETOOTH_ERROR_NONE;
+
+ if (__bt_is_factory_test_mode()) {
+ BT_ERR("Unable to set le random address in factory binary !!");
+ return BLUETOOTH_ERROR_NOT_SUPPORT;
+ }
+
+ if (_bt_adapter_get_status() != BT_ACTIVATED &&
+ _bt_adapter_get_le_status() != BT_LE_ACTIVATED) {
+ return BLUETOOTH_ERROR_DEVICE_NOT_ENABLED;
+ }
+
+ result = adapter_set_le_static_random_address(is_enable);
+ if (result != OAL_STATUS_SUCCESS) {
+ BT_ERR("adapter_set_connectable failed: %d", result);
+ result = BLUETOOTH_ERROR_INTERNAL;
+ } else {
+ BT_INFO("SetLeStaticRandomAddress as %d", is_enable);
+ result = BLUETOOTH_ERROR_NONE;
+ }
+
+ return result;
+}
+
}
break;
}
+ case BT_SET_LE_STATIC_RANDOM_ADDRESS: {
+ gboolean is_enable;
+
+ __bt_service_get_parameters(in_param1, &is_enable,
+ sizeof(gboolean));
+
+ result = _bt_set_le_static_random_address(is_enable);
+
+ break;
+ }
#ifdef TIZEN_GATT_CLIENT
/* Local Async */
case BT_GATT_CLIENT_REGISTER: {
gboolean _bt_is_le_coded_phy_supported(void);
+int _bt_set_le_static_random_address(gboolean is_enable);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */