summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Xu <martin.xu@intel.com>2009-11-26 15:24:17 +0800
committerMarcel Holtmann <marcel@holtmann.org>2009-11-26 11:34:38 +0000
commit904a0f6a5e3942dd86f893fb6d39c18b9db778ab (patch)
tree04e607d55578e123211fe542de73e9f7b5731888 /src
parent378de73cbf88e5522fe0102c6a913a5ddb55e84c (diff)
downloadconnman-904a0f6a5e3942dd86f893fb6d39c18b9db778ab.tar.gz
connman-904a0f6a5e3942dd86f893fb6d39c18b9db778ab.tar.bz2
connman-904a0f6a5e3942dd86f893fb6d39c18b9db778ab.zip
Add PropertyChanged signal for service Favorite setting
Diffstat (limited to 'src')
-rw-r--r--src/service.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c
index 59352b1b..aa0e9003 100644
--- a/src/service.c
+++ b/src/service.c
@@ -1352,6 +1352,33 @@ static gint service_compare(gconstpointer a, gconstpointer b,
return (gint) service_b->strength - (gint) service_a->strength;
}
+static void favorite_changed(struct connman_service *service)
+{
+ DBusMessage *signal;
+ DBusMessageIter entry, value;
+ const char *key = "Favorite";
+
+ if (service->path == NULL)
+ return;
+
+ signal = dbus_message_new_signal(service->path,
+ CONNMAN_SERVICE_INTERFACE, "PropertyChanged");
+ if (signal == NULL)
+ return;
+
+ dbus_message_iter_init_append(signal, &entry);
+
+ dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key);
+
+ dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT,
+ DBUS_TYPE_BOOLEAN_AS_STRING, &value);
+ dbus_message_iter_append_basic(&value, DBUS_TYPE_BOOLEAN,
+ &service->favorite);
+ dbus_message_iter_close_container(&entry, &value);
+
+ g_dbus_send_message(connection, signal);
+}
+
/**
* connman_service_set_favorite:
* @service: service structure
@@ -1373,6 +1400,8 @@ int connman_service_set_favorite(struct connman_service *service,
service->favorite = favorite;
+ favorite_changed(service);
+
g_sequence_sort_changed(iter, service_compare, NULL);
__connman_profile_changed(FALSE);