diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-09-21 17:31:53 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-09-21 21:15:07 -0500 |
commit | 8ea7db04168f0a0fa229f3af053830ce470076fa (patch) | |
tree | 33c03a5b6275a013f2b81300fe8d0a994ce7e206 /src | |
parent | 0e76043303e559ab7fde61a26bf8cae4085b24cb (diff) | |
download | ofono-8ea7db04168f0a0fa229f3af053830ce470076fa.tar.bz2 |
sms: Emit MessageAdded
Diffstat (limited to 'src')
-rw-r--r-- | src/sms.c | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -271,6 +271,36 @@ static gboolean message_dbus_unregister(struct ofono_sms *sms, OFONO_MESSAGE_INTERFACE); } +static void emit_message_added(struct ofono_sms *sms, struct message *m) +{ + DBusMessage *signal; + DBusMessageIter iter; + DBusMessageIter dict; + const char *path; + + path = __ofono_atom_get_path(sms->atom); + + signal = dbus_message_new_signal(path, + OFONO_MESSAGE_MANAGER_INTERFACE, + "MessageAdded"); + + if (signal == NULL) + return; + + dbus_message_iter_init_append(signal, &iter); + + path = message_build_path(sms, m); + 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); + append_message_properties(m, &dict); + dbus_message_iter_close_container(&iter, &dict); + + g_dbus_send_message(ofono_dbus_get_connection(), signal); +} + static void message_set_state(struct ofono_sms *sms, const struct ofono_uuid *uuid, enum message_state new_state) @@ -912,6 +942,8 @@ static DBusMessage *sms_send_message(DBusConnection *conn, DBusMessage *msg, __ofono_history_sms_send_pending(modem, &entry->uuid, to, time(NULL), text); + emit_message_added(sms, m); + return NULL; err: |