diff --git a/doc/obexd-api.txt b/doc/obexd-api.txt
index 680febe..53e61f5 100644
--- a/doc/obexd-api.txt
+++ b/doc/obexd-api.txt
Interface org.bluez.obex.Session
Object path /session{0, 1, 2, ...}
-Methods
- dict GetProperties()
-
-
-Signals TBD
+Properties string Target [readonly]
+ Target UUID
-Properties
- string Address [readonly]
+ string Root [readonly]
- Bluetooth device address or USB
+ Root path
diff --git a/obexd/src/manager.c b/obexd/src/manager.c
index 02dc999..85aa965 100644
--- a/obexd/src/manager.c
+++ b/obexd/src/manager.c
t[8], t[9], t[10], t[11], t[12], t[13], t[14], t[15]);
}
-static DBusMessage *get_properties(DBusConnection *conn,
- DBusMessage *msg, void *data)
+static gboolean get_target(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
{
struct obex_session *os = data;
- DBusMessage *reply;
- DBusMessageIter iter;
- DBusMessageIter dict;
char *uuid;
- const char *root;
-
- reply = dbus_message_new_method_return(msg);
- if (!reply)
- return NULL;
- dbus_message_iter_init_append(reply, &iter);
- dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
- DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING
- DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_VARIANT_AS_STRING
- DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict);
-
- /* Target */
uuid = target2str(os->service->target);
- dbus_message_iter_append_dict_entry(&dict, "Target",
- DBUS_TYPE_STRING, &uuid);
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &uuid);
g_free(uuid);
- /* Root folder */
- root = obex_option_root_folder();
- dbus_message_iter_append_dict_entry(&dict, "Root",
- DBUS_TYPE_STRING, &root);
+ return TRUE;
+}
- /* FIXME: Added Remote Address or USB */
+static gboolean get_root(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct obex_session *os = data;
+ const char *root;
- dbus_message_iter_close_container(&iter, &dict);
+ root = obex_option_root_folder();
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &root);
- return reply;
+ return TRUE;
}
static DBusMessage *transfer_cancel(DBusConnection *connection,
{ }
};
-static const GDBusMethodTable session_methods[] = {
- { GDBUS_METHOD("GetProperties",
- NULL, GDBUS_ARGS({ "properties", "a{sv}" }),
- get_properties) },
+static const GDBusPropertyTable session_properties[] = {
+ { "Target", "s", get_target },
+ { "Root", "s", get_root },
{ }
};
if (!g_dbus_register_interface(connection, path,
SESSION_INTERFACE,
- session_methods, NULL,
- NULL, os, NULL)) {
+ NULL, NULL,
+ session_properties, os, NULL)) {
error("Cannot register Session interface.");
goto done;
}