summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-09-09 13:49:21 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-09-09 13:49:21 -0500
commit0f994b7ea3987df62e77d9cd32f3d421343f3e6a (patch)
tree5feaa512a0f3a69c57db2714d456558b83d40b37 /src
parentffcb821ccfed2433e078729c35d0075ced4b539e (diff)
downloadofono-0f994b7ea3987df62e77d9cd32f3d421343f3e6a.tar.gz
manager: Add ModemRemoved signal
Diffstat (limited to 'src')
-rw-r--r--src/manager.c1
-rw-r--r--src/modem.c12
2 files changed, 13 insertions, 0 deletions
diff --git a/src/manager.c b/src/manager.c
index 285844ab..043b3e31 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -35,6 +35,7 @@ static GDBusMethodTable manager_methods[] = {
static GDBusSignalTable manager_signals[] = {
{ "ModemAdded", "oa{sv}" },
+ { "ModemRemoved", "o" },
{ }
};
diff --git a/src/modem.c b/src/modem.c
index 2c101786..412dfb96 100644
--- a/src/modem.c
+++ b/src/modem.c
@@ -1417,6 +1417,16 @@ int ofono_modem_register(struct ofono_modem *modem)
return 0;
}
+static void emit_modem_removed(struct ofono_modem *modem)
+{
+ DBusConnection *conn = ofono_dbus_get_connection();
+ const char *path = modem->path;
+
+ g_dbus_emit_signal(conn, OFONO_MANAGER_PATH, OFONO_MANAGER_INTERFACE,
+ "ModemRemoved", DBUS_TYPE_OBJECT_PATH, &path,
+ DBUS_TYPE_INVALID);
+}
+
static void modem_unregister(struct ofono_modem *modem)
{
DBusConnection *conn = ofono_dbus_get_connection();
@@ -1462,6 +1472,8 @@ static void modem_unregister(struct ofono_modem *modem)
modem->properties = NULL;
modem->driver = NULL;
+
+ emit_modem_removed(modem);
}
void ofono_modem_remove(struct ofono_modem *modem)