From 518ff8884b3e1769f5150459afa001f470c201c9 Mon Sep 17 00:00:00 2001 From: Olivier Guiter Date: Tue, 8 Nov 2011 11:21:10 +0100 Subject: [PATCH] neard: Add dbus Getproperty for read only flag --- src/near.h | 1 + src/tag.c | 6 ++++++ src/target.c | 7 +++++++ 3 files changed, 14 insertions(+) diff --git a/src/near.h b/src/near.h index 7cbcdee..44e9bf6 100644 --- a/src/near.h +++ b/src/near.h @@ -113,6 +113,7 @@ char *__near_ndef_record_get_path(struct near_ndef_record *record); #include void __near_tag_append_records(struct near_tag *tag, DBusMessageIter *iter); +near_bool_t __near_tag_get_ro(struct near_tag *tag); uint32_t __near_tag_n_records(struct near_tag *tag); int __near_tag_add_record(struct near_tag *tag, struct near_ndef_record *record); struct near_tag *__near_tag_new(uint32_t adapter_idx, uint32_t target_idx, diff --git a/src/tag.c b/src/tag.c index 31f9eb4..6130676 100644 --- a/src/tag.c +++ b/src/tag.c @@ -78,6 +78,7 @@ static int tag_initialize(struct near_tag *tag, tag->adapter_idx = adapter_idx; tag->target_idx = target_idx; tag->n_records = 0; + tag->readonly = 0; if (data_length > 0) { tag->data_length = data_length; @@ -154,6 +155,11 @@ int near_tag_set_ro(struct near_tag *tag, near_bool_t readonly) return 0; } +near_bool_t __near_tag_get_ro(struct near_tag *tag) +{ + return tag->readonly; +} + uint8_t *near_tag_get_data(struct near_tag *tag, size_t *data_length) { if (data_length == NULL) diff --git a/src/target.c b/src/target.c index 7af7a3f..0665152 100644 --- a/src/target.c +++ b/src/target.c @@ -209,6 +209,7 @@ static DBusMessage *get_properties(DBusConnection *conn, struct near_target *target = data; DBusMessage *reply; DBusMessageIter array, dict; + near_bool_t ronly; const char *type; DBG("conn %p", conn); @@ -236,6 +237,12 @@ static DBusMessage *get_properties(DBusConnection *conn, near_dbus_dict_append_array(&dict, "Records", DBUS_TYPE_OBJECT_PATH, append_records, target); + + if (target->tag != NULL) { + ronly = __near_tag_get_ro(target->tag); + near_dbus_dict_append_basic(&dict, "ReadOnly", + DBUS_TYPE_BOOLEAN, &ronly); + } } near_dbus_dict_close(&array, &dict); -- 2.7.4