};
struct mediadata {
- Eina_List *folder_list;
Eina_List *media_list;
int media_count[E_MEDIA_MAX];
const char *media_type;
int source_type;
int sort_type;
- Eina_List *item_list;
- Eina_List *folder_list;
Eina_List *media_list;
};
return sorted_list;
}
-static void _destroy_folderlist(Eina_List *list)
-{
- struct group_info *gi;
- app_media *am;
-
- EINA_LIST_FREE(list, gi) {
- free(gi->name);
- EINA_LIST_FREE(gi->list, am)
- app_media_destroy(am);
- free(gi);
- }
-}
-
static bool _get_each_media_info(media_info_h media_h, void *dt)
{
app_media *am;
return false;
}
- data->item_list = eina_list_append(data->item_list, am);
+ data->media_list = eina_list_append(data->media_list, am);
return true;
}
-static bool _get_each_folder_info(media_folder_h folder, void *dt)
+static bool _get_medialist(struct _data *data)
{
filter_h filter;
- struct _data *data;
- struct group_info *gi;
int ret;
- char *uuid;
-
- if (!dt)
- return false;
-
- data = dt;
-
- gi = calloc(1, sizeof(*gi));
- if (!gi) {
- _ERR("failed to create folderdata");
- return false;
- }
-
- if (media_folder_get_name(folder, &(gi->name))
- != MEDIA_CONTENT_ERROR_NONE) {
- _ERR("Media folder id Fetch error");
- goto err;
- }
-
- if (media_folder_get_folder_id(folder, &uuid)
- != MEDIA_CONTENT_ERROR_NONE) {
- _ERR("failed to fetch media folder id");
- goto err;
- }
if (!_create_filter(data, &filter, E_FILTER_MEDIA)) {
_ERR("failed to create filter");
- goto err;
- }
-
- ret = media_folder_foreach_media_from_db(uuid, filter,
- _get_each_media_info, data);
- if (ret != MEDIA_CONTENT_ERROR_NONE) {
- _ERR("failed to get media info");
- goto err;
- }
-
- gi->list = eina_list_clone(data->item_list);
- data->media_list = eina_list_merge(data->media_list, data->item_list);
- data->item_list = NULL;
-
- data->folder_list = eina_list_append(data->folder_list, gi);
-
- media_filter_destroy(filter);
- free(uuid);
-
- return true;
-
-err:
- media_filter_destroy(filter);
- free(uuid);
- _destroy_folderlist(data->folder_list);
- return false;
-}
-
-static bool _get_folderlist(struct _data *data)
-{
- filter_h filter;
- int ret;
-
- if (!_create_filter(data, &filter, E_FILTER_FOLDER)) {
- _ERR("failed to create filter");
return false;
}
- ret = media_folder_foreach_folder_from_db(filter,
- _get_each_folder_info, data);
+ ret = media_info_foreach_media_from_db(filter,
+ _get_each_media_info, data);
if (ret != MEDIA_CONTENT_ERROR_NONE) {
_ERR("failed to get folder info");
media_filter_destroy(filter);
data.media_type = media_type;
data.source_type = source_type;
data.sort_type = sort_type;
- data.item_list = NULL;
- data.folder_list = NULL;
data.media_list = NULL;
- if (!_get_folderlist(&data)) {
+ if (!_get_medialist(&data)) {
_ERR("failed to get folderlist");
free(md);
media_content_disconnect();
media_content_disconnect();
- md->folder_list = data.folder_list;
md->media_list = _sort_list(data.media_list, data.sort_type);
return md;
return;
}
- _destroy_folderlist(md->folder_list);
eina_list_free(md->media_list);
}