From 47593c4e5a71a95fb5ee9824e7bef8bf31d4f41f Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Sun, 1 Oct 2017 16:38:49 -0700 Subject: binding: mediascanner: add media metadata to JSON output Add metadata of the tracks artist, title, album and genre to the JSON output for media results. Bug-AGL: SPEC-924 Change-Id: I240481b3b36909cb2de6ff7ba5c0a168d7973dc2 Signed-off-by: Matt Ranostay --- binding/media-api.c | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) (limited to 'binding/media-api.c') diff --git a/binding/media-api.c b/binding/media-api.c index 8f7503d..4a5b5f6 100644 --- a/binding/media-api.c +++ b/binding/media-api.c @@ -82,8 +82,38 @@ static json_object *new_json_object_from_device(GList *list) for (l = list; l; l = l->next) { - jstring = json_object_new_string(l->data); - json_object_array_add(jarray, jstring); + struct Media_Item *item = l->data; + json_object *jdict = json_object_new_object(); + + jstring = json_object_new_string(item->path); + json_object_object_add(jdict, "path", jstring); + + if (item->metadata.title) { + jstring = json_object_new_string(item->metadata.title); + json_object_object_add(jdict, "title", jstring); + } + + if (item->metadata.artist) { + jstring = json_object_new_string(item->metadata.artist); + json_object_object_add(jdict, "artist", jstring); + } + + if (item->metadata.album) { + jstring = json_object_new_string(item->metadata.album); + json_object_object_add(jdict, "album", jstring); + } + + if (item->metadata.genre) { + jstring = json_object_new_string(item->metadata.genre); + json_object_object_add(jdict, "genre", jstring); + } + + if (item->metadata.duration) { + json_object *jint = json_object_new_int(item->metadata.duration); + json_object_object_add(jdict, "duration", jint); + } + + json_object_array_add(jarray, jdict); } if (jstring == NULL) -- cgit 1.2.3-korg