diff options
Diffstat (limited to 'binding')
-rw-r--r-- | binding/afm-common.h | 1 | ||||
-rw-r--r-- | binding/afm-mediaplayer-binding.c | 16 |
2 files changed, 15 insertions, 2 deletions
diff --git a/binding/afm-common.h b/binding/afm-common.h index 302dd26..34258da 100644 --- a/binding/afm-common.h +++ b/binding/afm-common.h @@ -35,6 +35,7 @@ struct playlist_item { gchar *genre; gint64 duration; gchar *media_path; + gchar *media_type; }; enum { diff --git a/binding/afm-mediaplayer-binding.c b/binding/afm-mediaplayer-binding.c index 478ba0e..b344917 100644 --- a/binding/afm-mediaplayer-binding.c +++ b/binding/afm-mediaplayer-binding.c @@ -105,6 +105,14 @@ static gboolean populate_from_json(struct playlist_item *item, json_object *jdic return ret; item->media_path = g_strdup(json_object_get_string(val)); + ret = json_object_object_get_ex(jdict, "type", &val); + if (!ret) { + g_object_unref(item->media_path); + return ret; + } + item->media_type = g_strdup(json_object_get_string(val)); + + ret = json_object_object_get_ex(jdict, "title", &val); if (ret) { item->title = g_strdup(json_object_get_string(val)); @@ -199,8 +207,12 @@ static json_object *populate_json_playlist(json_object *jresp) json_object *jarray = json_object_new_array(); for (l = playlist; l; l = l->next) { - json_object *item = populate_json(l->data); - json_object_array_add(jarray, item); + struct playlist_item *track = l->data; + + if (track && !g_strcmp0(track->media_type, "audio")) { + json_object *item = populate_json(track); + json_object_array_add(jarray, item); + } } json_object_object_add(jresp, "list", jarray); |