dundee: Initial GDBusClient for BlueZ 5
authorPaulo Borges <paulo.borges@openbossa.org>
Wed, 20 Mar 2013 22:26:33 +0000 (19:26 -0300)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Sun, 24 Mar 2013 12:20:16 +0000 (13:20 +0100)
This patch adds callbacks to track additions of BlueZ related
interfaces.

dundee/bluez5.c
dundee/dundee.h

index 6685b4c..5d6e728 100644 (file)
 #include <config.h>
 #endif
 
+#include <stdint.h>
+#include <sys/socket.h>
+#include <gdbus.h>
+
 #include "dundee.h"
+#include "plugins/bluez5.h"
+
+#define DUN_DT_PROFILE_PATH   "/bluetooth/profile/dun_dt"
+
+static GDBusClient *bluez;
+
+static void proxy_added(GDBusProxy *proxy, void *user_data)
+{
+       const char *path = g_dbus_proxy_get_path(proxy);
+       const char *interface = g_dbus_proxy_get_interface(proxy);
+
+       if (!g_str_equal(BLUEZ_DEVICE_INTERFACE, interface))
+               return;
+
+       DBG("%s %s", path, interface);
+}
+
+static void connect_handler(DBusConnection *conn, void *user_data)
+{
+       DBG("");
+
+       bt_register_profile_with_role(conn, DUN_GW_UUID, DUN_VERSION_1_2,
+                               "dun_dt", DUN_DT_PROFILE_PATH, "client");
+}
 
 int __dundee_bluetooth_init(void)
 {
+       DBusConnection *conn = ofono_dbus_get_connection();
+
        DBG("");
 
+       bluez = g_dbus_client_new(conn, BLUEZ_SERVICE, BLUEZ_MANAGER_PATH);
+       g_dbus_client_set_connect_watch(bluez, connect_handler, NULL);
+       g_dbus_client_set_proxy_handlers(bluez, proxy_added, NULL, NULL, NULL);
+
        return 0;
 }
 
 void __dundee_bluetooth_cleanup(void)
 {
        DBG("");
+
+       g_dbus_client_unref(bluez);
 }
index db932b6..daf78a5 100644 (file)
@@ -26,6 +26,8 @@
 
 #include <ofono/types.h>
 
+#define DUN_VERSION_1_2 0x0102
+
 void __dundee_exit(void);
 
 enum dundee_error_type {