dundee: Initial GDBusClient for BlueZ 5

This patch adds callbacks to track additions of BlueZ related
interfaces.
This commit is contained in:
Paulo Borges 2013-03-20 19:26:33 -03:00 committed by Daniel Wagner
parent d26dab944c
commit 953e74a945
2 changed files with 38 additions and 0 deletions

View File

@ -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);
}

View File

@ -26,6 +26,8 @@
#include <ofono/types.h>
#define DUN_VERSION_1_2 0x0102
void __dundee_exit(void);
enum dundee_error_type {