aboutsummaryrefslogtreecommitdiffstats
path: root/binding
diff options
context:
space:
mode:
authorMatt Ranostay <matt.ranostay@konsulko.com>2018-01-04 11:59:26 -0800
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2018-01-11 14:27:57 +0000
commit46340988885a128d03930b233ae792bb559f3392 (patch)
treeba7a59dd973701bbd111d652387bdb6352137315 /binding
parent68314a658d919a06b270340f06c162f56147c7b1 (diff)
binding: mediaplayer: tag media type in playlist
Some clients may not want or need both audio and video media in the the returned playlist. This change tags the media type in each playlist entries JSON output. Bug-AGL: SPEC-1236 Change-Id: I78a25b92f64eb73cca24f5f6a857913567c25f2c Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Diffstat (limited to 'binding')
-rw-r--r--binding/media-api.c3
-rw-r--r--binding/media-manager.c6
-rw-r--r--binding/media-manager.h4
3 files changed, 13 insertions, 0 deletions
diff --git a/binding/media-api.c b/binding/media-api.c
index 892f67d..065b258 100644
--- a/binding/media-api.c
+++ b/binding/media-api.c
@@ -88,6 +88,9 @@ static json_object *new_json_object_from_device(GList *list)
jstring = json_object_new_string(item->path);
json_object_object_add(jdict, "path", jstring);
+ jstring = json_object_new_string(lms_scan_types[item->type]);
+ json_object_object_add(jdict, "type", jstring);
+
if (item->metadata.title) {
jstring = json_object_new_string(item->metadata.title);
json_object_object_add(jdict, "title", jstring);
diff --git a/binding/media-manager.c b/binding/media-manager.c
index 46c7d1d..a1f228a 100644
--- a/binding/media-manager.c
+++ b/binding/media-manager.c
@@ -33,6 +33,11 @@
#include "media-manager.h"
+const char *lms_scan_types[] = {
+ "audio",
+ "video",
+};
+
static Binding_RegisterCallback_t g_RegisterCallback = { 0 };
static stMediaPlayerManage MediaPlayerManage = { 0 };
@@ -133,6 +138,7 @@ GList* media_lightmediascanner_scan(GList *list, gchar *uri, int scan_type)
item = g_malloc0(sizeof(*item));
item->path = g_strdup_printf("file://%s", path);
+ item->type = scan_type;
item->metadata.title = g_strdup((gchar *) sqlite3_column_text(res, 1));
item->metadata.artist = g_strdup((gchar *) sqlite3_column_text(res, 2));
item->metadata.album = g_strdup((gchar *) sqlite3_column_text(res, 3));
diff --git a/binding/media-manager.h b/binding/media-manager.h
index 2190a16..200b43d 100644
--- a/binding/media-manager.h
+++ b/binding/media-manager.h
@@ -121,6 +121,7 @@ GList* media_lightmediascanner_scan(GList *list, gchar *uri, int scan_type);
struct Media_Item {
gchar *path;
+ gint type;
struct {
gchar *title;
gchar *artist;
@@ -133,6 +134,9 @@ struct Media_Item {
enum {
LMS_AUDIO_SCAN,
LMS_VIDEO_SCAN,
+ LMS_SCAN_COUNT,
};
+extern const char *lms_scan_types[LMS_SCAN_COUNT];
+
#endif