From: Marcel Holtmann Date: Sat, 16 May 2009 14:34:42 +0000 (-0700) Subject: Add special StateChanged signal X-Git-Tag: maemo-0.19~78 X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;ds=sidebyside;h=7260b267094d37ef067ed21a0252df361096148a;p=connman Add special StateChanged signal --- diff --git a/doc/manager-api.txt b/doc/manager-api.txt index 13ca366..7f1924e 100644 --- a/doc/manager-api.txt +++ b/doc/manager-api.txt @@ -62,6 +62,15 @@ Signals PropertyChanged(string name, variant value) This signal indicates a changed value of the given property. + StateChanged(string state) + + This signal is similar to the PropertyChanged signal + for the State property. + + It exists for application state only care about the + current state and so can avoid to be woken up when + other details changes. + Properties string State [readonly] The global connection state of a system. Possible diff --git a/src/element.c b/src/element.c index 712dec6..e4fd6f3 100644 --- a/src/element.c +++ b/src/element.c @@ -1065,6 +1065,16 @@ static void emit_state_change(DBusConnection *conn, const char *state) append_state(&entry, state); g_dbus_send_message(conn, signal); + + signal = dbus_message_new_signal(CONNMAN_MANAGER_PATH, + CONNMAN_MANAGER_INTERFACE, "StateChanged"); + if (signal == NULL) + return; + + dbus_message_iter_init_append(signal, &entry); + dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &state); + + g_dbus_send_message(conn, signal); } static void probe_element(struct connman_element *element) diff --git a/src/manager.c b/src/manager.c index f5c50f6..14ea6ca 100644 --- a/src/manager.c +++ b/src/manager.c @@ -388,6 +388,7 @@ static GDBusMethodTable manager_methods[] = { static GDBusSignalTable manager_signals[] = { { "PropertyChanged", "sv" }, + { "StateChanged", "s" }, { }, };