Add support for video thumbnails...

Reviewers: raster

Reviewed By: raster

Subscribers: raster

Differential Revision: https://phab.enlightenment.org/D4565
v-0.4.0
Al Poole 6 years ago committed by Carsten Haitzler (Rasterman)
parent 6eaa248ab1
commit 47b39cc227
  1. 51
      src/bin/thumb.c

@ -31,6 +31,16 @@ _cb_fetched(void *data EINA_UNUSED)
elm_exit();
}
static Evas_Object *
_media_artwork(Evas_Object *obj, const char *path)
{
emotion_object_file_set(obj, path);
Evas_Object *art = emotion_file_meta_artwork_get(obj, path, EMOTION_ARTWORK_PREVIEW_IMAGE);
if (!art) art = emotion_file_meta_artwork_get(obj, path, EMOTION_ARTWORK_IMAGE);
return art;
}
static void
_cb_loaded(void *data, Evas_Object *obj, void *info EINA_UNUSED)
{
@ -152,6 +162,39 @@ _cb_timeout(void *data EINA_UNUSED)
return EINA_FALSE;
}
static Eina_Bool
_local_artwork_poster(Evas_Object *win, const char *path_to_file)
{
Evas_Object *em = emotion_object_add(evas_object_evas_get(win));
emotion_object_init(em, NULL);
emotion_object_file_set(em, path_to_file);
char *path = albumart_file_get(path_to_file);
if (path)
{
if (ecore_file_exists(path))
{
free(path);
return EINA_TRUE;
}
Evas_Object *artwork = _media_artwork(em, path_to_file);
if (artwork)
{
evas_object_image_save(artwork, path, NULL, NULL);
evas_object_del(artwork);
free(path);
/* This speeds things up */
exit(0);
}
free(path);
}
return EINA_FALSE;
}
EAPI_MAIN int
elm_main(int argc, char **argv)
{
@ -192,6 +235,12 @@ elm_main(int argc, char **argv)
is_audio = EINA_TRUE;
}
}
if (poster && _local_artwork_poster(win, file))
{
goto out;
}
if (emotion_object_init(vid, NULL))
{
evas_object_smart_callback_add(vid, "open_done", _cb_loaded, file);
@ -199,7 +248,9 @@ elm_main(int argc, char **argv)
vid_timeout = ecore_timer_add(20.0, _cb_timeout, NULL);
elm_run();
}
out:
elm_shutdown();
return 0;
}
ELM_MAIN()

Loading…
Cancel
Save