diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-09-09 13:44:59 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-09-09 13:44:59 -0500 |
commit | ffcb821ccfed2433e078729c35d0075ced4b539e (patch) | |
tree | eec9c7a098494dda90d585e3c75eb2310a17e994 /src | |
parent | 4a60d69e9868f7e0dc1b9056c4e62e4c8c8a3e61 (diff) | |
download | ofono-ffcb821ccfed2433e078729c35d0075ced4b539e.tar.bz2 |
manager: Add ModemAdded signal
Diffstat (limited to 'src')
-rw-r--r-- | src/manager.c | 1 | ||||
-rw-r--r-- | src/modem.c | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/manager.c b/src/manager.c index c7d5d237..285844ab 100644 --- a/src/manager.c +++ b/src/manager.c @@ -34,6 +34,7 @@ static GDBusMethodTable manager_methods[] = { }; static GDBusSignalTable manager_signals[] = { + { "ModemAdded", "oa{sv}" }, { } }; diff --git a/src/modem.c b/src/modem.c index ca2b06ed..2c101786 100644 --- a/src/modem.c +++ b/src/modem.c @@ -1333,6 +1333,33 @@ static void sim_watch(struct ofono_atom *atom, modem, NULL); } +static void emit_modem_added(struct ofono_modem *modem) +{ + DBusMessage *signal; + DBusMessageIter iter; + DBusMessageIter dict; + const char *path; + + signal = dbus_message_new_signal(OFONO_MANAGER_PATH, + OFONO_MANAGER_INTERFACE, + "ModemAdded"); + + if (signal == NULL) + return; + + dbus_message_iter_init_append(signal, &iter); + + path = modem->path; + dbus_message_iter_append_basic(&iter, DBUS_TYPE_OBJECT_PATH, &path); + dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, + OFONO_PROPERTIES_ARRAY_SIGNATURE, + &dict); + __ofono_modem_append_properties(modem, &dict); + dbus_message_iter_close_container(&iter, &dict); + + g_dbus_send_message(ofono_dbus_get_connection(), signal); +} + int ofono_modem_register(struct ofono_modem *modem) { DBusConnection *conn = ofono_dbus_get_connection(); @@ -1381,6 +1408,8 @@ int ofono_modem_register(struct ofono_modem *modem) modem->atom_watches = __ofono_watchlist_new(g_free); + emit_modem_added(modem); + modem->sim_watch = __ofono_modem_add_atom_watch(modem, OFONO_ATOM_TYPE_SIM, sim_watch, modem, NULL); |