From c5aacddf9142a56a25bc01cfd7d4ce537cb44cd2 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Mon, 7 Aug 2017 15:14:58 -0700 Subject: binding: media: scan local users Media directory Scan ~/Music in addition to the mounted physical media. Bug-AGL: SPEC-810 Change-Id: Ieb76cedc841cf5ea9ae4c260872943b9763ddcb3 Signed-off-by: Matt Ranostay --- mediaplayer-api.c | 5 +---- mediaplayer-manager.c | 24 ++++++++++++++++++++++++ mediaplayer-manager.h | 1 + 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/mediaplayer-api.c b/mediaplayer-api.c index 44944df..08372ad 100644 --- a/mediaplayer-api.c +++ b/mediaplayer-api.c @@ -91,10 +91,6 @@ static json_object *new_json_object_from_device(GList *list) json_object_object_add(jresp, "Media", jarray); - // TODO: Add media path - jstring = json_object_new_string(""); - json_object_object_add(jresp, "Path", jstring); - return jresp; } @@ -105,6 +101,7 @@ static void media_results_get (struct afb_req request) ListLock(); list = media_lightmediascanner_scan(); + list = media_local_scan(list); if (list == NULL) { afb_req_fail(request, "failed", "media scan error"); ListUnlock(); diff --git a/mediaplayer-manager.c b/mediaplayer-manager.c index 6265312..38e5cab 100644 --- a/mediaplayer-manager.c +++ b/mediaplayer-manager.c @@ -83,6 +83,30 @@ void DebugTraceSendMsg(int level, gchar* message) } +GList* media_local_scan(GList *list) +{ + gchar *path = g_strconcat(g_get_home_dir(), "/", "Music", NULL); + gchar *tmp = NULL; + GDir *dir; + + dir = g_dir_open(path, 0, NULL); + if (dir == NULL) + { + LOGE("Cannot open media path %s\n", path); + return list; + } + + while ((tmp = (gchar *) g_dir_read_name(dir)) != NULL) + { + list = g_list_append(list, g_strdup_printf("file://%s/%s", path, tmp)); + } + + g_free(path); + g_dir_close(dir); + + return list; +} + GList* media_lightmediascanner_scan(void) { sqlite3 *conn; diff --git a/mediaplayer-manager.h b/mediaplayer-manager.h index ae4fc8a..5864867 100644 --- a/mediaplayer-manager.h +++ b/mediaplayer-manager.h @@ -98,5 +98,6 @@ void ListLock(); void ListUnlock(); GList* media_lightmediascanner_scan(void); +GList* media_local_scan(GList *list); #endif -- cgit 1.2.3-korg