diff options
author | Matt Ranostay <matt.ranostay@konsulko.com> | 2017-08-07 15:14:58 -0700 |
---|---|---|
committer | Matt Ranostay <matt.ranostay@konsulko.com> | 2017-08-07 15:15:13 -0700 |
commit | c5aacddf9142a56a25bc01cfd7d4ce537cb44cd2 (patch) | |
tree | 41480a0b03d486e581a6b64be0935b1f7f4fad6f | |
parent | 6873bf7083349756314691589c45a0a43402fc47 (diff) |
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 <matt.ranostay@konsulko.com>
-rw-r--r-- | mediaplayer-api.c | 5 | ||||
-rw-r--r-- | mediaplayer-manager.c | 24 | ||||
-rw-r--r-- | 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 |