From: Mike Blumenkrantz Date: Tue, 24 Sep 2019 19:30:11 +0000 (-0400) Subject: efl_ui/image: implement efl.player::playback_progress method X-Git-Tag: submit/tizen/20190925.214157~36 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3b375e4e845e192d696d81d78c5d7e18c23be410;p=platform%2Fupstream%2Fefl.git efl_ui/image: implement efl.player::playback_progress method Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D10120 --- diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c index 53e521e..ba71e49 100644 --- a/src/lib/elementary/efl_ui_image.c +++ b/src/lib/elementary/efl_ui_image.c @@ -1849,6 +1849,16 @@ _efl_ui_image_efl_player_playback_position_get(const Eo *obj EINA_UNUSED, Efl_Ui return 0.0; } +EOLIAN static double +_efl_ui_image_efl_player_playback_progress_get(const Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd) +{ + if (sd->edje) + efl_player_playback_progress_get(sd->img); + else if ((sd->frame_count > 0) && (sd->frame_duration > 0.0)) + return (sd->cur_frame * sd->frame_duration) / sd->frame_count; + return 0.0; +} + static Eina_Bool _efl_ui_image_animated_paused_set_internal(Eo *obj, Efl_Ui_Image_Data *sd, Eina_Bool paused) { diff --git a/src/lib/elementary/efl_ui_image.eo b/src/lib/elementary/efl_ui_image.eo index ced215a..5d32abd 100644 --- a/src/lib/elementary/efl_ui_image.eo +++ b/src/lib/elementary/efl_ui_image.eo @@ -101,6 +101,7 @@ class Efl.Ui.Image extends Efl.Ui.Widget implements Efl.Input.Clickable, Efl.Ui. Efl.Player.playing { get; set; } Efl.Player.paused { get; set; } Efl.Player.playback_position { get; set; } + Efl.Player.playback_progress { get; } Efl.Layout.Signal.signal_emit; Efl.Layout.Signal.message_send; Efl.Layout.Signal.signal_callback_add; diff --git a/src/lib/elementary/efl_ui_image_zoomable.c b/src/lib/elementary/efl_ui_image_zoomable.c index a53b362..00c71a0 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.c +++ b/src/lib/elementary/efl_ui_image_zoomable.c @@ -3163,6 +3163,16 @@ _efl_ui_image_zoomable_efl_player_playback_position_get(const Eo *obj EINA_UNUSE return 0.0; } +EOLIAN static double +_efl_ui_image_zoomable_efl_player_playback_progress_get(const Eo *obj EINA_UNUSED, Efl_Ui_Image_Zoomable_Data *sd) +{ + if (sd->edje) + efl_player_playback_progress_get(sd->edje); + else if ((sd->frame_count > 0) && (sd->frame_duration > 0.0)) + return (sd->cur_frame * sd->frame_duration) / sd->frame_count; + return 0.0; +} + EOLIAN static void _efl_ui_image_zoomable_class_constructor(Efl_Class *klass EINA_UNUSED) { diff --git a/src/lib/elementary/efl_ui_image_zoomable.eo b/src/lib/elementary/efl_ui_image_zoomable.eo index 52df2c3..40dca93 100644 --- a/src/lib/elementary/efl_ui_image_zoomable.eo +++ b/src/lib/elementary/efl_ui_image_zoomable.eo @@ -47,6 +47,7 @@ class @beta Efl.Ui.Image_Zoomable extends Efl.Ui.Image implements Efl.Ui.Zoom Efl.Player.playing { get; set; } Efl.Player.paused { get; set; } Efl.Player.playback_position { get; set; } + Efl.Player.playback_progress { get; } Efl.Ui.Zoom.zoom_animation { set; get; } Efl.Ui.Zoom.zoom_level { set; get; } Efl.Ui.Zoom.zoom_mode { set; get; }