summaryrefslogtreecommitdiff
path: root/obexd/client
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-11-20 13:42:53 +0200
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-12-02 11:36:00 +0200
commitf7a8cbd2a3164b6e2e7c517fa53d5549874c1da1 (patch)
tree1a54e206861959fce5dd2f9db0f3540b92aec76c /obexd/client
parent3d88b8631f41e42be24e5b7c423e8c6034c04fa7 (diff)
downloadbluez-f7a8cbd2a3164b6e2e7c517fa53d5549874c1da1.tar.gz
obexd/client: Add Folder property
This adds Folder property to PhonebookAccess interface.
Diffstat (limited to 'obexd/client')
-rw-r--r--obexd/client/pbap.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/obexd/client/pbap.c b/obexd/client/pbap.c
index c33de3f7a..57f58eed2 100644
--- a/obexd/client/pbap.c
+++ b/obexd/client/pbap.c
@@ -256,6 +256,10 @@ static void pbap_setpath_cb(struct obc_session *session,
if (err != NULL)
pbap_reset_path(pbap);
+ else
+ g_dbus_emit_property_changed(conn,
+ obc_session_get_path(pbap->session),
+ PBAP_INTERFACE, "Folder");
if (err) {
DBusMessage *reply = g_dbus_create_error(request->msg,
@@ -971,6 +975,31 @@ static const GDBusMethodTable pbap_methods[] = {
{ }
};
+static gboolean folder_exists(const GDBusPropertyTable *property, void *data)
+{
+ struct pbap_data *pbap = data;
+
+ return pbap->path != NULL;
+}
+
+static gboolean get_folder(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct pbap_data *pbap = data;
+
+ if (!pbap->path)
+ return FALSE;
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &pbap->path);
+
+ return TRUE;
+}
+
+static const GDBusPropertyTable pbap_properties[] = {
+ { "Folder", "s", get_folder, NULL, folder_exists },
+ { }
+};
+
static void pbap_free(void *data)
{
struct pbap_data *pbap = data;
@@ -1030,7 +1059,8 @@ static int pbap_probe(struct obc_session *session)
pbap->supported_features);
if (!g_dbus_register_interface(conn, path, PBAP_INTERFACE, pbap_methods,
- NULL, NULL, pbap, pbap_free)) {
+ NULL, pbap_properties, pbap,
+ pbap_free)) {
pbap_free(pbap);
return -ENOMEM;
}