diff options
author | Jehun Lim <jehun.lim@samsung.com> | 2015-10-02 17:45:06 +0900 |
---|---|---|
committer | Jehun Lim <jehun.lim@samsung.com> | 2015-10-02 17:48:00 +0900 |
commit | 96b99ce28cfe7cd3ca3b6a6bf474a4e39a0af817 (patch) | |
tree | df142b079c5a79df00aa4bee6ffd3c1f8791211c | |
parent | a759a446c4093a7dc0eeaed907caae7f6fd7d781 (diff) | |
download | air_mediahub-96b99ce28cfe7cd3ca3b6a6bf474a4e39a0af817.tar.gz air_mediahub-96b99ce28cfe7cd3ca3b6a6bf474a4e39a0af817.tar.bz2 air_mediahub-96b99ce28cfe7cd3ca3b6a6bf474a4e39a0af817.zip |
base: modify the method of updating content infosubmit/tizen/20151005.003307accepted/tizen/tv/20151005.055316
Change-Id: I302dd20f77fad03f22ff77f9207aa270c8431d79
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
-rw-r--r-- | include/grid/grid.h | 2 | ||||
-rw-r--r-- | src/data/mediadata.c | 4 | ||||
-rw-r--r-- | src/grid/grid_gallery.c | 38 | ||||
-rw-r--r-- | src/grid/grid_movie.c | 31 | ||||
-rw-r--r-- | src/grid/grid_music.c | 58 | ||||
-rw-r--r-- | src/layout/gallery.c | 11 | ||||
-rw-r--r-- | src/layout/movie.c | 9 | ||||
-rw-r--r-- | src/layout/music.c | 9 |
8 files changed, 135 insertions, 27 deletions
diff --git a/include/grid/grid.h b/include/grid/grid.h index 5c7855f..53b1de5 100644 --- a/include/grid/grid.h +++ b/include/grid/grid.h @@ -51,6 +51,8 @@ struct grid_data { void *data; Eina_List *(*get_item_list)(struct datamgr *dmgr); void (*free_item_list)(struct datamgr *dmgr, Eina_List *list); + void (*get_item_info)(struct datamgr *dmgr, Eina_List *list, + char *str, int size); void (*key_down_cb)(void *data, Elm_Object_Item *it, Evas_Event_Key_Down *ev); void (*selected_cb)(void *data, Elm_Object_Item *it); diff --git a/src/data/mediadata.c b/src/data/mediadata.c index 772fef5..c55572c 100644 --- a/src/data/mediadata.c +++ b/src/data/mediadata.c @@ -645,6 +645,7 @@ static Eina_List *_get_group(void *handle, int type, void *data) struct group_info *gi; app_media *am; app_media_info *info; + int i; if (!handle) { _ERR("failed to get mediadata handle"); @@ -658,6 +659,9 @@ static Eina_List *_get_group(void *handle, int type, void *data) md = handle; + for (i = 0; i < E_FILE_MAX; i++) + md->media_count[i] = 0; + md->media_list = _sort_list(md->media_list, type); gi = NULL; diff --git a/src/grid/grid_gallery.c b/src/grid/grid_gallery.c index 2ea4cd5..a421756 100644 --- a/src/grid/grid_gallery.c +++ b/src/grid/grid_gallery.c @@ -247,6 +247,41 @@ static void _free_place_list(struct datamgr *dmgr, Eina_List *list) } } +static void _get_media_info(struct datamgr *dmgr, Eina_List *list, char *str, + int size) +{ + int photo, video; + + photo = dmgr->ops->get_count(dmgr->handle, E_FILE_PHOTO); + video = dmgr->ops->get_count(dmgr->handle, E_FILE_VIDEO); + + if (photo < 0) { + _ERR("failed to get media count"); + photo = 0; + } + + if (video < 0) { + _ERR("failed to get media count"); + video = 0; + } + + snprintf(str, size, "%d Photos, %d Videos", photo, video); +} + +static void _get_place_info(struct datamgr *dmgr, Eina_List *list, char *str, + int size) +{ + Eina_List *l; + struct group_info *gi; + int cnt; + + cnt = 0; + EINA_LIST_FOREACH(list, l, gi) + cnt += eina_list_count(gi->list); + + snprintf(str, size, "%d Cities", cnt); +} + static void _key_down_cb(void *data, Elm_Object_Item *it, Evas_Event_Key_Down *ev) { @@ -352,6 +387,7 @@ static struct grid_data _gdata[] = { .gclass = &_gclass[E_GALLERY_EVENT], .get_item_list = _get_event_list, .free_item_list = _free_media_list, + .get_item_info = _get_media_info, .key_down_cb = _key_down_cb, .selected_cb = _media_selected_cb }, @@ -363,6 +399,7 @@ static struct grid_data _gdata[] = { .gclass = &_gclass[E_GALLERY_PLACE], .get_item_list = _get_place_list, .free_item_list = _free_place_list, + .get_item_info = _get_place_info, .selected_cb = _place_selected_cb }, [E_GALLERY_VIDEO] = { @@ -373,6 +410,7 @@ static struct grid_data _gdata[] = { .gclass = &_gclass[E_GALLERY_EVENT], .get_item_list = _get_type_list, .free_item_list = _free_media_list, + .get_item_info = _get_media_info, .key_down_cb = _key_down_cb, .selected_cb = _media_selected_cb }, diff --git a/src/grid/grid_movie.c b/src/grid/grid_movie.c index 04f7e0a..6f5c9d3 100644 --- a/src/grid/grid_movie.c +++ b/src/grid/grid_movie.c @@ -224,6 +224,32 @@ static void _free_group_list(struct datamgr *dmgr, Eina_List *list) } } +static void _get_media_info(struct datamgr *dmgr, Eina_List *list, + char *str, int size) +{ + int cnt; + + cnt = dmgr->ops->get_count(dmgr->handle, E_FILE_VIDEO); + if (cnt < 0) { + _ERR("failed to get media count"); + cnt = 0; + } + + snprintf(str, size, "%d Movies", cnt); +} + +static void _get_genre_info(struct datamgr *dmgr, Eina_List *list, + char *str, int size) +{ + struct group_info *gi; + int cnt; + + gi = eina_list_nth(list, 0); + cnt = eina_list_count(gi->list); + + snprintf(str, size, "%d Genre", cnt); +} + static void _key_down_cb(void *data, Elm_Object_Item *it, Evas_Event_Key_Down *ev) { @@ -334,6 +360,7 @@ static struct grid_data _gdata[] = { .gclass = &_gclass[E_MOVIE_NAME], .get_item_list = _get_name_list, .free_item_list = _free_media_list, + .get_item_info = _get_media_info, .key_down_cb = _key_down_cb, .selected_cb = _media_selected_cb }, @@ -345,6 +372,7 @@ static struct grid_data _gdata[] = { .gclass = &_gclass[E_MOVIE_GENRE], .get_item_list = _get_genre_list, .free_item_list = _free_group_list, + .get_item_info = _get_genre_info, .selected_cb = _genre_selected_cb }, [E_MOVIE_DATE] = { @@ -354,7 +382,8 @@ static struct grid_data _gdata[] = { .grid_padding = MOVIE_NAME_GRID_PADDING, .gclass = &_gclass[E_MOVIE_DATE], .get_item_list = _get_date_list, - .free_item_list = _free_media_list + .free_item_list = _free_media_list, + .get_item_info = _get_media_info }, /* Other view mode data will be added later */ }; diff --git a/src/grid/grid_music.c b/src/grid/grid_music.c index 928478d..12bd7af 100644 --- a/src/grid/grid_music.c +++ b/src/grid/grid_music.c @@ -291,6 +291,60 @@ static void _free_group_list(struct datamgr *dmgr, Eina_List *list) } } +static void _get_media_info(struct datamgr *dmgr, Eina_List *list, char *str, + int size) +{ + int cnt; + + cnt = dmgr->ops->get_count(dmgr->handle, E_FILE_MUSIC); + if (cnt < 0) { + _ERR("failed to get media count"); + cnt = 0; + } + + snprintf(str, size, "%d Songs", cnt); +} + +static void _get_album_info(struct datamgr *dmgr, Eina_List *list, char *str, + int size) +{ + Eina_List *l; + struct group_info *gi; + int cnt; + + cnt = 0; + EINA_LIST_FOREACH(list, l, gi) + cnt += eina_list_count(gi->list); + + snprintf(str, size, "%d Albums", cnt); +} + +static void _get_artist_info(struct datamgr *dmgr, Eina_List *list, char *str, + int size) +{ + Eina_List *l; + struct group_info *gi; + int cnt; + + cnt = 0; + EINA_LIST_FOREACH(list, l, gi) + cnt += eina_list_count(gi->list); + + snprintf(str, size, "%d Artists", cnt); +} + +static void _get_genre_info(struct datamgr *dmgr, Eina_List *list, char *str, + int size) +{ + struct group_info *gi; + int cnt; + + gi = eina_list_nth(list, 0); + cnt = eina_list_count(gi->list); + + snprintf(str, size, "%d Genre", cnt); +} + static void _key_down_cb(void *data, Elm_Object_Item *it, Evas_Event_Key_Down *ev) { @@ -462,6 +516,7 @@ static struct grid_data _gdata[] = { .gclass = &_gclass[E_MUSIC_SONG], .get_item_list = _get_song_list, .free_item_list = _free_item_list, + .get_item_info = _get_media_info, .key_down_cb = _key_down_cb, .selected_cb = _media_selected_cb, }, @@ -473,6 +528,7 @@ static struct grid_data _gdata[] = { .gclass = &_gclass[E_MUSIC_ALBUM], .get_item_list = _get_album_list, .free_item_list = _free_item_list, + .get_item_info = _get_album_info, .selected_cb = _album_selected_cb, }, [E_MUSIC_ARTIST] = { @@ -483,6 +539,7 @@ static struct grid_data _gdata[] = { .gclass = &_gclass[E_MUSIC_ARTIST], .get_item_list = _get_artist_list, .free_item_list = _free_item_list, + .get_item_info = _get_artist_info, .selected_cb = _artist_selected_cb, }, [E_MUSIC_GENRE] = { @@ -493,6 +550,7 @@ static struct grid_data _gdata[] = { .gclass = &_gclass[E_MUSIC_GENRE], .get_item_list = _get_genre_list, .free_item_list = _free_group_list, + .get_item_info = _get_genre_info, .selected_cb = _genre_selected_cb, }, /* Other view mode data will be added later */ diff --git a/src/layout/gallery.c b/src/layout/gallery.c index 779de14..1f62e6b 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -107,22 +107,13 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) static void _update_content_info(struct _priv *priv) { struct datamgr *dmgr; - int photo, video; char buf[128]; dmgr = priv->dmgr[E_DATA_MEDIA]; if (!dmgr) return; - photo = dmgr->ops->get_count(dmgr->handle, E_FILE_PHOTO); - video = dmgr->ops->get_count(dmgr->handle, E_FILE_VIDEO); - - if (photo < 0 || video < 0) { - _ERR("failed to get media count"); - return; - } - - snprintf(buf, sizeof(buf), "%d Photos, %d Videos", photo, video); + priv->gdata->get_item_info(dmgr, priv->media_list, buf, sizeof(buf)); elm_object_part_text_set(priv->base, PART_BASE_CONTENT_INFO, buf); } diff --git a/src/layout/movie.c b/src/layout/movie.c index 509fa12..6e44997 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -317,20 +317,13 @@ err: static void _update_content_info(struct _priv *priv) { struct datamgr *dmgr; - int count; char buf[128]; dmgr = priv->dmgr[E_DATA_MEDIA]; if (!dmgr) return; - count = dmgr->ops->get_count(dmgr->handle, E_FILE_VIDEO); - if (count < 0) { - _ERR("failed to get media count"); - return; - } - - snprintf(buf, sizeof(buf), "%d Movies", count); + priv->gdata->get_item_info(dmgr, priv->media_list, buf, sizeof(buf)); elm_object_part_text_set(priv->base, PART_BASE_CONTENT_INFO, buf); } diff --git a/src/layout/music.c b/src/layout/music.c index cb9ec00..02695ef 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -282,20 +282,13 @@ static struct datamgr *_get_datamgr(struct _priv *priv) static void _update_content_info(struct _priv *priv) { struct datamgr *dmgr; - int count; char buf[128]; dmgr = _get_datamgr(priv); if (!dmgr) return; - count = dmgr->ops->get_count(dmgr->handle, E_FILE_MUSIC); - if (count < 0) { - _ERR("failed to get media count"); - return; - } - - snprintf(buf, sizeof(buf), "%d Songs", count); + priv->gdata->get_item_info(dmgr, priv->media_list, buf, sizeof(buf)); elm_object_part_text_set(priv->base, PART_BASE_CONTENT_INFO, buf); } |