int util_get_media_index_from_id(Eina_List *list, const char *id);
app_media *util_find_media_info(Eina_List *list, const char *id);
void util_add_to_recent(Eina_List *list, int index);
+void util_create_thumbnail(Evas_Object *grid, app_media *am,
+ void (*completed_cb)(media_content_error_e,
+ const char *, void *));
#endif /* __AIR_MEDIAHUB_UTIL_H__ */
#define STR_PLACE_NAME "City"
+static void _create_thumbnail_completed_cb(media_content_error_e err,
+ const char *path, void *user_data)
+{
+ Elm_Object_Item *it;
+ app_media *am;
+
+ if (!user_data)
+ return;
+
+ it = user_data;
+
+ media_content_connect();
+
+ am = elm_object_item_data_get(it);
+
+ app_media_update(am);
+
+ elm_gengrid_item_fields_update(it, PART_ELM_SWALLOW_THUMBNAIL,
+ ELM_GENGRID_ITEM_FIELD_CONTENT);
+
+ media_content_disconnect();
+}
+
static char *_media_text_get(void *data, Evas_Object *obj, const char *part)
{
app_media *am;
eo = NULL;
if (!strcmp(part, PART_ELM_SWALLOW_THUMBNAIL)) {
+ if (!info->thumbnail_path) {
+ util_create_thumbnail(obj, am,
+ _create_thumbnail_completed_cb);
+ return NULL;
+ }
+
eo = util_add_image(obj, info->thumbnail_path);
if (!eo) {
_ERR("failed to create image object");
#define STR_GENRE_NAME "Genre"
+static void _create_thumbnail_completed_cb(media_content_error_e err,
+ const char *path, void *user_data)
+{
+ Elm_Object_Item *it;
+ app_media *am;
+
+ if (!user_data)
+ return;
+
+ it = user_data;
+
+ media_content_connect();
+
+ am = elm_object_item_data_get(it);
+
+ app_media_update(am);
+
+ elm_gengrid_item_fields_update(it, PART_ELM_SWALLOW_THUMBNAIL,
+ ELM_GENGRID_ITEM_FIELD_CONTENT);
+
+ media_content_disconnect();
+}
+
static char *_media_text_get(void *data, Evas_Object *obj, const char *part)
{
app_media *am;
eo = NULL;
if (!strcmp(part, PART_ELM_SWALLOW_THUMBNAIL)) {
+ if (!info->thumbnail_path) {
+ util_create_thumbnail(obj, am,
+ _create_thumbnail_completed_cb);
+ return NULL;
+ }
+
eo = util_add_image(obj, info->thumbnail_path);
if (!eo) {
_ERR("failed to create image object");
#include "util/util.h"
#define STR_GRID_ID "grid_id"
+#define STR_GRID_CONTENT "grid_content"
#define MAX_GRID_WIDTH 1858
inputmgr_add_callback(grid, LISTMGR_GRID, &_grid_handler, lmgr);
+ evas_object_data_set(grid, STR_GRID_CONTENT, gi->list);
+
return grid;
}
#include "define.h"
#include "util/util.h"
+#define STR_GRID_CONTENT "grid_content"
+
#define VIDEO_COPYRIGHT "Unknown"
/*
app_media_update(am);
}
+
+void util_create_thumbnail(Evas_Object *grid, app_media *am,
+ void (*completed_cb)(media_content_error_e,
+ const char *, void *))
+{
+ Eina_List *list;
+ Elm_Object_Item *it;
+ int index;
+ int r;
+
+ list = evas_object_data_get(grid, STR_GRID_CONTENT);
+ index = util_get_media_index(list, am);
+
+ it = elm_gengrid_first_item_get(grid);
+ while (index--)
+ it = elm_gengrid_item_next_get(it);
+
+ r = media_info_create_thumbnail(app_media_get_media_handle(am),
+ completed_cb, it);
+ if (r != MEDIA_CONTENT_ERROR_NONE)
+ _ERR("failed to create thumbnail");
+}