From 8fd47cf37b0bfc8d454d12c444ce8d4272e068d2 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 8 May 2018 02:34:11 -0700 Subject: binding: mediaplayer: fix duplicate entries being added to playlist Check playlist for an entry with the current media_path and refuse to add to the list if it exists Bug-AGL: SPEC-1375 Change-Id: Idc5fb4b2570ed7ac9cf63aa3c37e44b8e35d6b34 Signed-off-by: Matt Ranostay --- binding/afm-mediaplayer-binding.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/binding/afm-mediaplayer-binding.c b/binding/afm-mediaplayer-binding.c index 44af131..e46a7cb 100644 --- a/binding/afm-mediaplayer-binding.c +++ b/binding/afm-mediaplayer-binding.c @@ -167,6 +167,12 @@ static int set_media_uri(struct playlist_item *item) return 0; } + +static int in_list(gconstpointer item, gconstpointer list) { + return g_strcmp0(((struct playlist_item *) item)->media_path, + ((struct playlist_item *) list)->media_path); +} + static void populate_playlist(json_object *jquery) { int i, idx = 0; @@ -186,7 +192,7 @@ static void populate_playlist(json_object *jquery) break; ret = populate_from_json(item, jdict); - if (!ret) { + if (!ret || g_list_find_custom(playlist, item, in_list)) { g_free_playlist_item(item); continue; } -- cgit 1.2.3-korg