diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib/emotion/emotion_smart.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c index 52ae0e6d06..bc3a7eb8b6 100644 --- a/src/lib/emotion/emotion_smart.c +++ b/src/lib/emotion/emotion_smart.c | |||
@@ -374,17 +374,28 @@ _efl_canvas_video_efl_file_file_set(Eo *obj EINA_UNUSED, Efl_Canvas_Video_Data * | |||
374 | sd->video.h = 0; | 374 | sd->video.h = 0; |
375 | if ((file) && (file[0] != 0)) | 375 | if ((file) && (file[0] != 0)) |
376 | { | 376 | { |
377 | const char *file2; | ||
378 | |||
377 | eina_stringshare_replace(&sd->file, file); | 379 | eina_stringshare_replace(&sd->file, file); |
378 | emotion_engine_instance_file_close(sd->engine_instance); | 380 | emotion_engine_instance_file_close(sd->engine_instance); |
379 | evas_object_image_data_set(sd->obj, NULL); | 381 | evas_object_image_data_set(sd->obj, NULL); |
380 | evas_object_image_size_set(sd->obj, 1, 1); | 382 | evas_object_image_size_set(sd->obj, 1, 1); |
381 | _emotion_image_data_zero(sd->obj); | 383 | _emotion_image_data_zero(sd->obj); |
382 | sd->open = 0; | 384 | sd->open = 0; |
383 | if (!emotion_engine_instance_file_open(sd->engine_instance, sd->file)) | 385 | |
386 | Efl_Vpath_File *file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, file); | ||
387 | efl_vpath_file_do(file_obj); | ||
388 | // XXX:FIXME: allow this to be async | ||
389 | efl_vpath_file_wait(file_obj); | ||
390 | file2 = efl_vpath_file_result_get(file_obj); | ||
391 | |||
392 | if (!emotion_engine_instance_file_open(sd->engine_instance, file2)) | ||
384 | { | 393 | { |
385 | WRN("Couldn't open file=%s", sd->file); | 394 | WRN("Couldn't open file=%s", sd->file); |
395 | efl_del(file_obj); | ||
386 | return EINA_FALSE; | 396 | return EINA_FALSE; |
387 | } | 397 | } |
398 | efl_del(file_obj); | ||
388 | DBG("successfully opened file=%s", sd->file); | 399 | DBG("successfully opened file=%s", sd->file); |
389 | sd->pos = 0.0; | 400 | sd->pos = 0.0; |
390 | if (sd->play) emotion_engine_instance_play(sd->engine_instance, 0.0); | 401 | if (sd->play) emotion_engine_instance_play(sd->engine_instance, 0.0); |