From 4e950130407ba729a5adcaf29192033cb28e57c3 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Tue, 27 Nov 2012 14:51:20 +0200 Subject: gdbus: Add g_dbus_add_properties_watch function Convenient function to create watches for D-Bus properties. --- gdbus/watch.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gdbus/watch.c') diff --git a/gdbus/watch.c b/gdbus/watch.c index 1cd12118..9e4f994a 100644 --- a/gdbus/watch.c +++ b/gdbus/watch.c @@ -752,6 +752,34 @@ guint g_dbus_add_signal_watch(DBusConnection *connection, return cb->id; } +guint g_dbus_add_properties_watch(DBusConnection *connection, + const char *sender, const char *path, + const char *interface, + GDBusSignalFunction function, void *user_data, + GDBusDestroyFunction destroy) +{ + struct filter_data *data; + struct filter_callback *cb; + + data = filter_data_get(connection, signal_filter, sender, path, + DBUS_INTERFACE_PROPERTIES, "PropertiesChanged", + interface); + if (data == NULL) + return 0; + + cb = filter_data_add_callback(data, NULL, NULL, function, destroy, + user_data); + if (cb == NULL) + return 0; + + if (data->name != NULL && data->name_watch == 0) + data->name_watch = g_dbus_add_service_watch(connection, + data->name, NULL, + NULL, NULL, NULL); + + return cb->id; +} + gboolean g_dbus_remove_watch(DBusConnection *connection, guint id) { struct filter_data *data; -- cgit v1.2.3