viewer: add update function for getting media list from base view 47/43347/1
authorMinkyu Kang <mk7.kang@samsung.com>
Wed, 8 Jul 2015 08:13:13 +0000 (17:13 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Wed, 8 Jul 2015 08:13:13 +0000 (17:13 +0900)
Change-Id: I9f7aa2b87a36071e0eae410439070a3ea8dec3af
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
include/view.h
src/layout/gallery.c
src/layout/movie.c
src/view/viewer.c

index afa40e8..18a07bf 100644 (file)
@@ -24,7 +24,7 @@ view_class *view_base_get_vclass(void);
 view_class *view_viewer_get_vclass(void);
 
 /* view data */
-struct view_data {
+struct view_update_data {
        Eina_List *list;
        int index;
 };
index 939a86b..ecac88b 100644 (file)
@@ -101,7 +101,7 @@ static struct grid_class _gclass = {
 static void _grid_selected_cb(void *data, Elm_Object_Item *it)
 {
        app_media *am;
-       struct view_data *vdata;
+       struct view_update_data vdata;
        struct _priv *priv;
 
        if (!data || !it) {
@@ -117,16 +117,10 @@ static void _grid_selected_cb(void *data, Elm_Object_Item *it)
                return;
        }
 
-       vdata = calloc(1, sizeof(*vdata));
-       if (!vdata) {
-               _ERR("failed to allocate view data");
-               return;
-       }
-
-       vdata->list = mediadata_get_medialist(priv->md);
-       vdata->index = util_get_media_index(vdata->list, am);
+       vdata.list = mediadata_get_medialist(priv->md);
+       vdata.index = util_get_media_index(vdata.list, am);
 
-       viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, vdata);
+       viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata);
        viewmgr_push_view(VIEW_VIEWER);
 }
 
index f0d1478..d127e31 100644 (file)
@@ -117,7 +117,7 @@ static struct grid_class _gclass = {
 static void _grid_selected_cb(void *data, Elm_Object_Item *it)
 {
        app_media *am;
-       struct view_data *vdata;
+       struct view_update_data vdata;
        struct _priv *priv;
 
        if (!data || !it) {
@@ -133,16 +133,10 @@ static void _grid_selected_cb(void *data, Elm_Object_Item *it)
                return;
        }
 
-       vdata = calloc(1, sizeof(*vdata));
-       if (!vdata) {
-               _ERR("failed to allocate view data");
-               return;
-       }
-
-       vdata->list = mediadata_get_medialist(priv->md);
-       vdata->index = util_get_media_index(vdata->list, am);
+       vdata.list = mediadata_get_medialist(priv->md);
+       vdata.index = util_get_media_index(vdata.list, am);
 
-       viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, vdata);
+       viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT, &vdata);
        viewmgr_push_view(VIEW_VIEWER);
 }
 
index 79f2e51..4a80d83 100644 (file)
@@ -24,6 +24,7 @@
 #include <app_media.h>
 
 #include "define.h"
+#include "view.h"
 #include "util/controller.h"
 #include "util/timeout_handler.h"
 #include "util/playermgr.h"
@@ -173,62 +174,6 @@ static struct _viewer_info viewer_info[] = {
        },
 };
 
-/* FIXME: test function */
-static bool _media(media_info_h media_h, void *dt)
-{
-       struct _priv *priv;
-       app_media *am;
-
-       priv = dt;
-
-       am = app_media_create(media_h);
-
-       priv->playlist.list = eina_list_append(priv->playlist.list, am);
-
-       return true;
-}
-
-static void _media_test(struct _priv *priv, int mode)
-{
-       char *path = "/home/owner/content/Videos/Xmen-Days_of_Future_Past.mp4";
-       filter_h filter;
-       char buf[1024];
-       int r;
-
-       r = media_filter_create(&filter);
-       if (r != MEDIA_CONTENT_ERROR_NONE) {
-               _ERR("Media Filter Creation Failed");
-               return;
-       }
-
-       if (mode)
-               snprintf(buf, sizeof(buf), "MEDIA_PATH = \"%s\"", path);
-       else
-               snprintf(buf, sizeof(buf), "MEDIA_TYPE=0 OR MEDIA_TYPE=1");
-
-       r = media_filter_set_condition(filter, buf,
-                       MEDIA_CONTENT_COLLATE_DEFAULT);
-       if (r != MEDIA_CONTENT_ERROR_NONE) {
-               _ERR("Fail to set filter condition");
-               media_filter_destroy(filter);
-               return;
-       }
-
-       media_content_connect();
-
-       r = media_info_foreach_media_from_db(filter, _media, priv);
-       if (r != MEDIA_CONTENT_ERROR_NONE) {
-               _ERR("MEDIA CONTENT ERROR: %d", r);
-               media_filter_destroy(filter);
-               media_content_disconnect();
-               return;
-       }
-
-       media_filter_destroy(filter);
-       media_content_disconnect();
-}
-/* FIXME: test function end */
-
 /*
  * NOTE: Workaround
  * we assumed that if video content have the copyright then it's a movie.
@@ -385,7 +330,7 @@ static void _draw_title_bar(struct _priv *priv, int id, app_media_info *mi)
                elm_object_part_text_set(priv->base,
                                PART_VIEWER_TITLE, mi->title);
        } else {
-               strftime(date, sizeof(date), "%d %b", mi->content_time);
+               strftime(date, sizeof(date), "%d %b, %Y", mi->content_time);
                strftime(day, sizeof(day), "%a", mi->content_time);
                util_up_string(day);
 
@@ -883,9 +828,6 @@ static Evas_Object *_create(Evas_Object *win, void *data)
                return NULL;
        }
 
-       /* FIXME: test code */
-       _media_test(priv, 0);
-
        viewmgr_set_view_data(VIEW_VIEWER, priv);
 
        return base;
@@ -902,7 +844,6 @@ static void _show(void *view_data)
 
        priv = view_data;
 
-       /* FIXME: test code */
        _viewer_show(priv, DIR_NONE);
 
        timeout_handler_reset(priv->timeout);
@@ -926,10 +867,31 @@ static void _hide(void *view_data)
        evas_object_hide(priv->base);
 }
 
+static void _update(void *view_data, int update_type, void *data)
+{
+       struct _priv *priv;
+       struct view_update_data *vdata;
+
+       if (!view_data) {
+               _ERR("failed to get view data");
+               return;
+       }
+
+       if (!data) {
+               _ERR("invalid parameter");
+               return;
+       }
+
+       priv = view_data;
+       vdata = data;
+
+       priv->playlist.list = vdata->list;
+       priv->playlist.cur = vdata->index;
+}
+
 static void _destroy(void *view_data)
 {
        struct _priv *priv;
-       app_media *am;
 
        if (!view_data) {
                _ERR("failed to get view data");
@@ -940,9 +902,6 @@ static void _destroy(void *view_data)
 
        _viewer_delete(priv);
 
-       EINA_LIST_FREE(priv->playlist.list, am)
-               app_media_destroy(am);
-
        timeout_handler_fini(priv->timeout);
 
        playermgr_destroy(priv->player);
@@ -957,6 +916,7 @@ static view_class _vclass = {
        .create = _create,
        .show = _show,
        .hide = _hide,
+       .update = _update,
        .destroy = _destroy,
 };