diff options
author | Paulo Borges <paulo.borges@openbossa.org> | 2013-03-20 19:26:33 -0300 |
---|---|---|
committer | Daniel Wagner <daniel.wagner@bmw-carit.de> | 2013-03-24 13:20:16 +0100 |
commit | 953e74a9457aee433b1e18485dd06196744b172b (patch) | |
tree | 9456bbd1d4c9cb3344febbba2bb40b8436fe7764 /dundee/bluez5.c | |
parent | d26dab944c16eeb113f68e8cfd90071b353530e6 (diff) | |
download | ofono-953e74a9457aee433b1e18485dd06196744b172b.tar.bz2 |
dundee: Initial GDBusClient for BlueZ 5
This patch adds callbacks to track additions of BlueZ related
interfaces.
Diffstat (limited to 'dundee/bluez5.c')
-rw-r--r-- | dundee/bluez5.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/dundee/bluez5.c b/dundee/bluez5.c index 6685b4c4..5d6e728a 100644 --- a/dundee/bluez5.c +++ b/dundee/bluez5.c @@ -22,16 +22,52 @@ #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); } |