dundee: Manager append devices

This commit is contained in:
Daniel Wagner 2011-12-19 09:46:59 +01:00
parent 5f92489f97
commit b7001e0988
1 changed files with 22 additions and 0 deletions

View File

@ -30,6 +30,26 @@
#include "dundee.h"
static void append_device(struct dundee_device *device, void *userdata)
{
DBusMessageIter *array = userdata;
const char *path = __dundee_device_get_path(device);
DBusMessageIter entry, dict;
dbus_message_iter_open_container(array, DBUS_TYPE_STRUCT,
NULL, &entry);
dbus_message_iter_append_basic(&entry, DBUS_TYPE_OBJECT_PATH,
&path);
dbus_message_iter_open_container(&entry, DBUS_TYPE_ARRAY,
OFONO_PROPERTIES_ARRAY_SIGNATURE,
&dict);
__dundee_device_append_properties(device, &dict);
dbus_message_iter_close_container(&entry, &dict);
dbus_message_iter_close_container(array, &entry);
}
static DBusMessage *manager_get_devices(DBusConnection *conn,
DBusMessage *msg, void *data)
{
@ -56,6 +76,8 @@ static DBusMessage *manager_get_devices(DBusConnection *conn,
DBUS_STRUCT_END_CHAR_AS_STRING,
&array);
__dundee_device_foreach(append_device, &array);
dbus_message_iter_close_container(&iter, &array);
return reply;