#include "bluetooth-gatt-server-api.h"
#endif
-#ifdef TIZEN_GATT_CLIENT
#include "bluetooth-gatt-client-api.h"
-#endif
+#include "bluetooth-mesh-api.h"
#include "bt-common.h"
#include "bt-request-sender.h"
#include "bt-event-handler.h"
-
-#ifdef TIZEN_FEATURE_BT_DPM
#include "bt-dpm.h"
-#endif
static bt_user_info_t user_info[BT_MAX_USER_INFO];
static GDBusConnection *system_shared_conn = NULL;
-static GDBusConnection *system_private_conn = NULL;
+static GDBusConnection *system_common_conn = NULL;
static guint bus_id;
#define DBUS_TIMEOUT 20 * 1000 /* 20 Seconds */
+#if 0 // Remain this code for private connection in later.
static GDBusConnection *g_bus_get_private_conn(void)
{
GError *error = NULL;
return private_gconn;
}
+#endif
-GDBusConnection *_bt_get_system_private_conn(void)
+// TODO: Need to use _bt_get_system_shared_conn in later.
+GDBusConnection *_bt_get_system_common_conn(void)
{
- if (system_private_conn == NULL)
- system_private_conn = g_bus_get_private_conn();
- else if (g_dbus_connection_is_closed(system_private_conn))
- system_private_conn = g_bus_get_private_conn();
-
- return system_private_conn;
+ if (system_common_conn == NULL) {
+ GError *error = NULL;
+ system_common_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
+ if (error) {
+ BT_ERR("GDBus connection Error : %s \n", error->message);
+ g_clear_error(&error);
+ return NULL;
+ }
+ }
+ return system_common_conn;
}
GDBusConnection *_bt_get_system_shared_conn(void)
int ret = BLUETOOTH_ERROR_NONE;
BT_INFO("+");
+ BT_CHECK_ENABLED(return);
BT_INIT_PARAMS();
BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
int ret = BLUETOOTH_ERROR_NONE;
BT_INFO("+");
+ BT_CHECK_ENABLED(return);
BT_INIT_PARAMS();
BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
user_data);
}
-#ifdef TIZEN_GATT_CLIENT
void _bt_gatt_client_event_cb(int event, int result, void *param,
void *callback, void *user_data)
{
BT_ERR("GATT Client event callback is not registered!!!");
}
}
-#endif
#ifndef GATT_DIRECT
void _bt_gatt_server_event_cb(int event, int result, void *param,
}
#endif
+void _bt_mesh_event_cb(int event, int result, void *param,
+ void *callback, void *user_data)
+{
+ BT_DBG("_bt_mesh_event_cb");
+ mesh_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_DBG("Mesh event callback is registered");
+ ((mesh_cb_func_ptr)callback)(bt_event.event, &bt_event,
+ user_data);
+ } else {
+ BT_ERR("Mesh event callback is not registered!!!");
+ }
+}
+
void _bt_divide_device_class(bluetooth_device_class_t *device_class,
unsigned int cod)
{
GError *err = NULL;
GDBusProxy *device_gproxy;
- gconn = _bt_get_system_private_conn();
+ gconn = _bt_get_system_common_conn();
if (gconn == NULL)
return NULL;
GVariant *result = NULL;
char *adapter_path = NULL;
- conn = _bt_get_system_private_conn();
+ conn = _bt_get_system_common_conn();
retv_if(conn == NULL, NULL);
manager_proxy = g_dbus_proxy_new_sync(conn,
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();
+ gconn = _bt_get_system_common_conn();
retv_if(gconn == NULL, BLUETOOTH_ERROR_INTERNAL);
object_path = _bt_get_device_object_path(address);
retv_if(object_path == NULL, BLUETOOTH_ERROR_INTERNAL);
unsigned int class = 0x00;
int ret = BLUETOOTH_ERROR_NONE;
- gconn = _bt_get_system_private_conn();
+ gconn = _bt_get_system_common_conn();
retv_if(gconn == NULL, BLUETOOTH_ERROR_INTERNAL);
object_path = _bt_get_device_object_path(address);
return BLUETOOTH_ERROR_INTERNAL;
gconn = _bt_get_system_shared_conn();
- if (gconn == NULL)
+ 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,
BT_DEVICE_INTERFACE,
NULL, &err);
+ g_free(object_path);
+
if (proxy == NULL && err) {
BT_ERR("Unable to create proxy: %s", err->message);
g_clear_error(&err);
return BLUETOOTH_ERROR_INTERNAL;
}
- g_free(object_path);
g_dbus_proxy_call(proxy, "DisconnectExtProfile",
g_variant_new("(o)", path),
GDBusConnection *conn = NULL;
char *object_path = NULL;
- conn = _bt_get_system_private_conn();
+ conn = _bt_get_system_common_conn();
retv_if(conn == NULL, NULL);
proxy = g_dbus_proxy_new_sync(conn,
BT_DBG("+");
- g_conn = _bt_get_system_private_conn();
+ g_conn = _bt_get_system_common_conn();
retv_if(g_conn == NULL, NULL);
manager_proxy = g_dbus_proxy_new_sync(g_conn,
{
int ret;
- _bt_get_system_private_conn();
+ _bt_get_system_common_conn();
ret = _bt_init_event_handler();
if (ret != BLUETOOTH_ERROR_NONE &&
profile_gproxy = NULL;
}
- if (system_private_conn) {
- g_object_unref(system_private_conn);
- system_private_conn = NULL;
+ if (system_common_conn) {
+ g_object_unref(system_common_conn);
+ system_common_conn = NULL;
}
return BLUETOOTH_ERROR_NONE;