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);
struct group_info *gi;
app_media *am;
app_media_info *info;
+ int i;
if (!handle) {
_ERR("failed to get mediadata handle");
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;
}
}
+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)
{
.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
},
.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] = {
.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
},
}
}
+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)
{
.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
},
.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] = {
.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 */
};
}
}
+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)
{
.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,
},
.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] = {
.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] = {
.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 */
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);
}
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);
}
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);
}