return _efl_ui_image_animated_get_internal(obj, sd);
}
+EOLIAN static void
+_efl_ui_image_efl_player_playback_position_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd, double sec)
+{
+ EINA_SAFETY_ON_TRUE_RETURN(sec < 0.0);
+ if (sd->edje)
+ efl_player_playback_position_set(sd->img, sec);
+ else if ((sd->frame_count > 0) && (sd->frame_duration > 0.0))
+ {
+ /* validate total animation time */
+ EINA_SAFETY_ON_TRUE_RETURN(sd->frame_count * sd->frame_duration < sec);
+ sd->cur_frame = lround(sec / sd->frame_duration);
+ }
+}
+
+EOLIAN static double
+_efl_ui_image_efl_player_playback_position_get(const Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd)
+{
+ if (sd->edje)
+ efl_player_playback_position_get(sd->img);
+ else if ((sd->frame_count > 0) && (sd->frame_duration > 0.0))
+ return sd->cur_frame * sd->frame_duration;
+ return 0.0;
+}
+
static Eina_Bool
_efl_ui_image_animated_paused_set_internal(Eo *obj, Efl_Ui_Image_Data *sd, Eina_Bool paused)
{
Efl.Playable.playable { get; }
Efl.Player.playing { get; set; }
Efl.Player.paused { get; set; }
+ Efl.Player.playback_position { get; set; }
Efl.Layout.Signal.signal_emit;
Efl.Layout.Signal.message_send;
Efl.Layout.Signal.signal_callback_add;
}
EOLIAN static void
+_efl_ui_image_zoomable_efl_player_playback_position_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Zoomable_Data *sd, double sec)
+{
+ EINA_SAFETY_ON_TRUE_RETURN(sec < 0.0);
+ if (sd->edje)
+ efl_player_playback_position_set(sd->edje, sec);
+ else if ((sd->frame_count > 0) && (sd->frame_duration > 0.0))
+ {
+ /* validate total animation time */
+ EINA_SAFETY_ON_TRUE_RETURN(sd->frame_count * sd->frame_duration < sec);
+ sd->cur_frame = lround(sec / sd->frame_duration);
+ }
+}
+
+EOLIAN static double
+_efl_ui_image_zoomable_efl_player_playback_position_get(const Eo *obj EINA_UNUSED, Efl_Ui_Image_Zoomable_Data *sd)
+{
+ if (sd->edje)
+ efl_player_playback_position_get(sd->edje);
+ else if ((sd->frame_count > 0) && (sd->frame_duration > 0.0))
+ return sd->cur_frame * sd->frame_duration;
+ return 0.0;
+}
+
+EOLIAN static void
_efl_ui_image_zoomable_class_constructor(Efl_Class *klass EINA_UNUSED)
{
PHOTO_FILE_LOAD_ERROR_GENERIC = eina_error_msg_static_register("Generic load error");
Efl.Playable.playable { get; }
Efl.Player.playing { get; set; }
Efl.Player.paused { get; set; }
+ Efl.Player.playback_position { get; set; }
Efl.Ui.Zoom.zoom_animation { set; get; }
Efl.Ui.Zoom.zoom_level { set; get; }
Efl.Ui.Zoom.zoom_mode { set; get; }