#pragma warning disable CS1591 using System; using System.Runtime.InteropServices; using System.Collections.Generic; using System.Linq; using System.Threading; using System.ComponentModel; namespace Efl { namespace Gfx { /// Efl frame controller of frame based animated object interface. [Efl.Gfx.IFrameControllerConcrete.NativeMethods] public interface IFrameController : Efl.Eo.IWrapper, IDisposable { /// Check if an object can be animated (has multiple frames). /// This will be true for animated object for instance but false for a single frame object. /// true if the object is animated bool GetAnimated(); /// Index of the current frame of an animated object. /// Ranges from 1 to . Valid only if . /// The index of current frame. int GetFrame(); /// Set the frame to current frame of an animated object. /// The index of current frame. /// Returns true if the frame index is valid. bool SetFrame(int frame_index); /// Get the total number of frames of the object, if animated. /// Returns -1 if not animated. /// The number of frames in the animated object. int GetFrameCount(); /// Get the kind of looping the animated object does. /// This returns the kind of looping the animated object wants to do. /// /// If it returns , you should display frames in a sequence like: 1->2->3->1->2->3->1... /// /// If it returns , it is better to display frames in a sequence like: 1->2->3->2->1->2->3->1... /// /// The default type is . /// Loop type of the animated object. Efl.Gfx.FrameControllerLoopHint GetLoopType(); /// Get the number times the animation of the object loops. /// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame). /// /// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops). /// The number of loop of an animated object. int GetLoopCount(); /// Get the duration of a sequence of frames. /// This returns total duration in seconds that the specified sequence of frames should take. /// /// If start_frame is 1 and frame_num is 0, this returns the duration of frame 1. If start_frame is 1 and frame_num is 1, this returns the total duration of frame 1 + frame 2. /// The first frame, rangers from 1 to . /// Number of frames in the sequence, starts from 0. /// Duration in seconds double GetFrameDuration(int start_frame, int frame_num); /// Check if an object can be animated (has multiple frames). /// This will be true for animated object for instance but false for a single frame object. /// true if the object is animated bool Animated { get ; } /// Index of the current frame of an animated object. /// Ranges from 1 to . Valid only if . /// The index of current frame. int Frame { get ; set ; } /// Get the total number of frames of the object, if animated. /// Returns -1 if not animated. /// The number of frames in the animated object. int FrameCount { get ; } /// Get the kind of looping the animated object does. /// This returns the kind of looping the animated object wants to do. /// /// If it returns , you should display frames in a sequence like: 1->2->3->1->2->3->1... /// /// If it returns , it is better to display frames in a sequence like: 1->2->3->2->1->2->3->1... /// /// The default type is . /// Loop type of the animated object. Efl.Gfx.FrameControllerLoopHint LoopType { get ; } /// Get the number times the animation of the object loops. /// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame). /// /// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops). /// The number of loop of an animated object. int LoopCount { get ; } } /// Efl frame controller of frame based animated object interface. sealed public class IFrameControllerConcrete : IFrameController { ///Pointer to the native class description. public System.IntPtr NativeClass { get { if (((object)this).GetType() == typeof(IFrameControllerConcrete)) { return GetEflClassStatic(); } else { return Efl.Eo.ClassRegister.klassFromType[((object)this).GetType()]; } } } private System.IntPtr handle; ///Pointer to the native instance. public System.IntPtr NativeHandle { get { return handle; } } [System.Runtime.InteropServices.DllImport(efl.Libs.Efl)] internal static extern System.IntPtr efl_gfx_frame_controller_interface_get(); /// Initializes a new instance of the class. /// Internal usage: This is used when interacting with C code and should not be used directly. private IFrameControllerConcrete(System.IntPtr raw) { handle = raw; } ///Destructor. ~IFrameControllerConcrete() { Dispose(false); } ///Releases the underlying native instance. private void Dispose(bool disposing) { if (handle != System.IntPtr.Zero) { IntPtr h = handle; handle = IntPtr.Zero; IntPtr gcHandlePtr = IntPtr.Zero; if (disposing) { Efl.Eo.Globals.efl_mono_native_dispose(h, gcHandlePtr); } else { Monitor.Enter(Efl.All.InitLock); if (Efl.All.MainLoopInitialized) { Efl.Eo.Globals.efl_mono_thread_safe_native_dispose(h, gcHandlePtr); } Monitor.Exit(Efl.All.InitLock); } } } ///Releases the underlying native instance. public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } /// Verifies if the given object is equal to this one. /// The object to compare to. /// True if both objects point to the same native object. public override bool Equals(object instance) { var other = instance as Efl.Object; if (other == null) { return false; } return this.NativeHandle == other.NativeHandle; } /// Gets the hash code for this object based on the native pointer it points to. /// The value of the pointer, to be used as the hash code of this object. public override int GetHashCode() { return this.NativeHandle.ToInt32(); } /// Turns the native pointer into a string representation. /// A string with the type and the native pointer for this object. public override String ToString() { return $"{this.GetType().Name}@[{this.NativeHandle.ToInt32():x}]"; } /// Check if an object can be animated (has multiple frames). /// This will be true for animated object for instance but false for a single frame object. /// true if the object is animated public bool GetAnimated() { var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_animated_get_ptr.Value.Delegate(this.NativeHandle); Eina.Error.RaiseIfUnhandledException(); return _ret_var; } /// Index of the current frame of an animated object. /// Ranges from 1 to . Valid only if . /// The index of current frame. public int GetFrame() { var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_frame_get_ptr.Value.Delegate(this.NativeHandle); Eina.Error.RaiseIfUnhandledException(); return _ret_var; } /// Set the frame to current frame of an animated object. /// The index of current frame. /// Returns true if the frame index is valid. public bool SetFrame(int frame_index) { var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_frame_set_ptr.Value.Delegate(this.NativeHandle,frame_index); Eina.Error.RaiseIfUnhandledException(); return _ret_var; } /// Get the total number of frames of the object, if animated. /// Returns -1 if not animated. /// The number of frames in the animated object. public int GetFrameCount() { var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_frame_count_get_ptr.Value.Delegate(this.NativeHandle); Eina.Error.RaiseIfUnhandledException(); return _ret_var; } /// Get the kind of looping the animated object does. /// This returns the kind of looping the animated object wants to do. /// /// If it returns , you should display frames in a sequence like: 1->2->3->1->2->3->1... /// /// If it returns , it is better to display frames in a sequence like: 1->2->3->2->1->2->3->1... /// /// The default type is . /// Loop type of the animated object. public Efl.Gfx.FrameControllerLoopHint GetLoopType() { var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_loop_type_get_ptr.Value.Delegate(this.NativeHandle); Eina.Error.RaiseIfUnhandledException(); return _ret_var; } /// Get the number times the animation of the object loops. /// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame). /// /// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops). /// The number of loop of an animated object. public int GetLoopCount() { var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_loop_count_get_ptr.Value.Delegate(this.NativeHandle); Eina.Error.RaiseIfUnhandledException(); return _ret_var; } /// Get the duration of a sequence of frames. /// This returns total duration in seconds that the specified sequence of frames should take. /// /// If start_frame is 1 and frame_num is 0, this returns the duration of frame 1. If start_frame is 1 and frame_num is 1, this returns the total duration of frame 1 + frame 2. /// The first frame, rangers from 1 to . /// Number of frames in the sequence, starts from 0. /// Duration in seconds public double GetFrameDuration(int start_frame, int frame_num) { var _ret_var = Efl.Gfx.IFrameControllerConcrete.NativeMethods.efl_gfx_frame_controller_frame_duration_get_ptr.Value.Delegate(this.NativeHandle,start_frame, frame_num); Eina.Error.RaiseIfUnhandledException(); return _ret_var; } /// Check if an object can be animated (has multiple frames). /// This will be true for animated object for instance but false for a single frame object. /// true if the object is animated public bool Animated { get { return GetAnimated(); } } /// Index of the current frame of an animated object. /// Ranges from 1 to . Valid only if . /// The index of current frame. public int Frame { get { return GetFrame(); } set { SetFrame(value); } } /// Get the total number of frames of the object, if animated. /// Returns -1 if not animated. /// The number of frames in the animated object. public int FrameCount { get { return GetFrameCount(); } } /// Get the kind of looping the animated object does. /// This returns the kind of looping the animated object wants to do. /// /// If it returns , you should display frames in a sequence like: 1->2->3->1->2->3->1... /// /// If it returns , it is better to display frames in a sequence like: 1->2->3->2->1->2->3->1... /// /// The default type is . /// Loop type of the animated object. public Efl.Gfx.FrameControllerLoopHint LoopType { get { return GetLoopType(); } } /// Get the number times the animation of the object loops. /// This returns loop count of animated object. The loop count is the number of times the animation will play fully from first to last frame until the animation should stop (at the final frame). /// /// If 0 is returned, then looping should happen indefinitely (no limit to the number of times it loops). /// The number of loop of an animated object. public int LoopCount { get { return GetLoopCount(); } } private static IntPtr GetEflClassStatic() { return Efl.Gfx.IFrameControllerConcrete.efl_gfx_frame_controller_interface_get(); } /// Wrapper for native methods and virtual method delegates. /// For internal use by generated code only. public class NativeMethods : Efl.Eo.NativeClass { private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule( efl.Libs.Efl); /// Gets the list of Eo operations to override. /// The list of Eo operations to be overload. public override System.Collections.Generic.List GetEoOps(System.Type type) { var descs = new System.Collections.Generic.List(); var methods = Efl.Eo.Globals.GetUserMethods(type); if (efl_gfx_frame_controller_animated_get_static_delegate == null) { efl_gfx_frame_controller_animated_get_static_delegate = new efl_gfx_frame_controller_animated_get_delegate(animated_get); } if (methods.FirstOrDefault(m => m.Name == "GetAnimated") != null) { descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_animated_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_animated_get_static_delegate) }); } if (efl_gfx_frame_controller_frame_get_static_delegate == null) { efl_gfx_frame_controller_frame_get_static_delegate = new efl_gfx_frame_controller_frame_get_delegate(frame_get); } if (methods.FirstOrDefault(m => m.Name == "GetFrame") != null) { descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_frame_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_frame_get_static_delegate) }); } if (efl_gfx_frame_controller_frame_set_static_delegate == null) { efl_gfx_frame_controller_frame_set_static_delegate = new efl_gfx_frame_controller_frame_set_delegate(frame_set); } if (methods.FirstOrDefault(m => m.Name == "SetFrame") != null) { descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_frame_set"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_frame_set_static_delegate) }); } if (efl_gfx_frame_controller_frame_count_get_static_delegate == null) { efl_gfx_frame_controller_frame_count_get_static_delegate = new efl_gfx_frame_controller_frame_count_get_delegate(frame_count_get); } if (methods.FirstOrDefault(m => m.Name == "GetFrameCount") != null) { descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_frame_count_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_frame_count_get_static_delegate) }); } if (efl_gfx_frame_controller_loop_type_get_static_delegate == null) { efl_gfx_frame_controller_loop_type_get_static_delegate = new efl_gfx_frame_controller_loop_type_get_delegate(loop_type_get); } if (methods.FirstOrDefault(m => m.Name == "GetLoopType") != null) { descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_loop_type_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_loop_type_get_static_delegate) }); } if (efl_gfx_frame_controller_loop_count_get_static_delegate == null) { efl_gfx_frame_controller_loop_count_get_static_delegate = new efl_gfx_frame_controller_loop_count_get_delegate(loop_count_get); } if (methods.FirstOrDefault(m => m.Name == "GetLoopCount") != null) { descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_loop_count_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_loop_count_get_static_delegate) }); } if (efl_gfx_frame_controller_frame_duration_get_static_delegate == null) { efl_gfx_frame_controller_frame_duration_get_static_delegate = new efl_gfx_frame_controller_frame_duration_get_delegate(frame_duration_get); } if (methods.FirstOrDefault(m => m.Name == "GetFrameDuration") != null) { descs.Add(new Efl_Op_Description() {api_func = Efl.Eo.FunctionInterop.LoadFunctionPointer(Module.Module, "efl_gfx_frame_controller_frame_duration_get"), func = Marshal.GetFunctionPointerForDelegate(efl_gfx_frame_controller_frame_duration_get_static_delegate) }); } return descs; } /// Returns the Eo class for the native methods of this class. /// The native class pointer. public override IntPtr GetEflClass() { return Efl.Gfx.IFrameControllerConcrete.efl_gfx_frame_controller_interface_get(); } #pragma warning disable CA1707, SA1300, SA1600 [return: MarshalAs(UnmanagedType.U1)] private delegate bool efl_gfx_frame_controller_animated_get_delegate(System.IntPtr obj, System.IntPtr pd); [return: MarshalAs(UnmanagedType.U1)] public delegate bool efl_gfx_frame_controller_animated_get_api_delegate(System.IntPtr obj); public static Efl.Eo.FunctionWrapper efl_gfx_frame_controller_animated_get_ptr = new Efl.Eo.FunctionWrapper(Module, "efl_gfx_frame_controller_animated_get"); private static bool animated_get(System.IntPtr obj, System.IntPtr pd) { Eina.Log.Debug("function efl_gfx_frame_controller_animated_get was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { bool _ret_var = default(bool); try { _ret_var = ((IFrameController)wrapper).GetAnimated(); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } return _ret_var; } else { return efl_gfx_frame_controller_animated_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj))); } } private static efl_gfx_frame_controller_animated_get_delegate efl_gfx_frame_controller_animated_get_static_delegate; private delegate int efl_gfx_frame_controller_frame_get_delegate(System.IntPtr obj, System.IntPtr pd); public delegate int efl_gfx_frame_controller_frame_get_api_delegate(System.IntPtr obj); public static Efl.Eo.FunctionWrapper efl_gfx_frame_controller_frame_get_ptr = new Efl.Eo.FunctionWrapper(Module, "efl_gfx_frame_controller_frame_get"); private static int frame_get(System.IntPtr obj, System.IntPtr pd) { Eina.Log.Debug("function efl_gfx_frame_controller_frame_get was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { int _ret_var = default(int); try { _ret_var = ((IFrameController)wrapper).GetFrame(); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } return _ret_var; } else { return efl_gfx_frame_controller_frame_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj))); } } private static efl_gfx_frame_controller_frame_get_delegate efl_gfx_frame_controller_frame_get_static_delegate; [return: MarshalAs(UnmanagedType.U1)] private delegate bool efl_gfx_frame_controller_frame_set_delegate(System.IntPtr obj, System.IntPtr pd, int frame_index); [return: MarshalAs(UnmanagedType.U1)] public delegate bool efl_gfx_frame_controller_frame_set_api_delegate(System.IntPtr obj, int frame_index); public static Efl.Eo.FunctionWrapper efl_gfx_frame_controller_frame_set_ptr = new Efl.Eo.FunctionWrapper(Module, "efl_gfx_frame_controller_frame_set"); private static bool frame_set(System.IntPtr obj, System.IntPtr pd, int frame_index) { Eina.Log.Debug("function efl_gfx_frame_controller_frame_set was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { bool _ret_var = default(bool); try { _ret_var = ((IFrameController)wrapper).SetFrame(frame_index); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } return _ret_var; } else { return efl_gfx_frame_controller_frame_set_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), frame_index); } } private static efl_gfx_frame_controller_frame_set_delegate efl_gfx_frame_controller_frame_set_static_delegate; private delegate int efl_gfx_frame_controller_frame_count_get_delegate(System.IntPtr obj, System.IntPtr pd); public delegate int efl_gfx_frame_controller_frame_count_get_api_delegate(System.IntPtr obj); public static Efl.Eo.FunctionWrapper efl_gfx_frame_controller_frame_count_get_ptr = new Efl.Eo.FunctionWrapper(Module, "efl_gfx_frame_controller_frame_count_get"); private static int frame_count_get(System.IntPtr obj, System.IntPtr pd) { Eina.Log.Debug("function efl_gfx_frame_controller_frame_count_get was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { int _ret_var = default(int); try { _ret_var = ((IFrameController)wrapper).GetFrameCount(); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } return _ret_var; } else { return efl_gfx_frame_controller_frame_count_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj))); } } private static efl_gfx_frame_controller_frame_count_get_delegate efl_gfx_frame_controller_frame_count_get_static_delegate; private delegate Efl.Gfx.FrameControllerLoopHint efl_gfx_frame_controller_loop_type_get_delegate(System.IntPtr obj, System.IntPtr pd); public delegate Efl.Gfx.FrameControllerLoopHint efl_gfx_frame_controller_loop_type_get_api_delegate(System.IntPtr obj); public static Efl.Eo.FunctionWrapper efl_gfx_frame_controller_loop_type_get_ptr = new Efl.Eo.FunctionWrapper(Module, "efl_gfx_frame_controller_loop_type_get"); private static Efl.Gfx.FrameControllerLoopHint loop_type_get(System.IntPtr obj, System.IntPtr pd) { Eina.Log.Debug("function efl_gfx_frame_controller_loop_type_get was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { Efl.Gfx.FrameControllerLoopHint _ret_var = default(Efl.Gfx.FrameControllerLoopHint); try { _ret_var = ((IFrameController)wrapper).GetLoopType(); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } return _ret_var; } else { return efl_gfx_frame_controller_loop_type_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj))); } } private static efl_gfx_frame_controller_loop_type_get_delegate efl_gfx_frame_controller_loop_type_get_static_delegate; private delegate int efl_gfx_frame_controller_loop_count_get_delegate(System.IntPtr obj, System.IntPtr pd); public delegate int efl_gfx_frame_controller_loop_count_get_api_delegate(System.IntPtr obj); public static Efl.Eo.FunctionWrapper efl_gfx_frame_controller_loop_count_get_ptr = new Efl.Eo.FunctionWrapper(Module, "efl_gfx_frame_controller_loop_count_get"); private static int loop_count_get(System.IntPtr obj, System.IntPtr pd) { Eina.Log.Debug("function efl_gfx_frame_controller_loop_count_get was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { int _ret_var = default(int); try { _ret_var = ((IFrameController)wrapper).GetLoopCount(); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } return _ret_var; } else { return efl_gfx_frame_controller_loop_count_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj))); } } private static efl_gfx_frame_controller_loop_count_get_delegate efl_gfx_frame_controller_loop_count_get_static_delegate; private delegate double efl_gfx_frame_controller_frame_duration_get_delegate(System.IntPtr obj, System.IntPtr pd, int start_frame, int frame_num); public delegate double efl_gfx_frame_controller_frame_duration_get_api_delegate(System.IntPtr obj, int start_frame, int frame_num); public static Efl.Eo.FunctionWrapper efl_gfx_frame_controller_frame_duration_get_ptr = new Efl.Eo.FunctionWrapper(Module, "efl_gfx_frame_controller_frame_duration_get"); private static double frame_duration_get(System.IntPtr obj, System.IntPtr pd, int start_frame, int frame_num) { Eina.Log.Debug("function efl_gfx_frame_controller_frame_duration_get was called"); Efl.Eo.IWrapper wrapper = Efl.Eo.Globals.PrivateDataGet(pd); if (wrapper != null) { double _ret_var = default(double); try { _ret_var = ((IFrameController)wrapper).GetFrameDuration(start_frame, frame_num); } catch (Exception e) { Eina.Log.Warning($"Callback error: {e.ToString()}"); Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION); } return _ret_var; } else { return efl_gfx_frame_controller_frame_duration_get_ptr.Value.Delegate(Efl.Eo.Globals.efl_super(obj, Efl.Eo.Globals.efl_class_get(obj)), start_frame, frame_num); } } private static efl_gfx_frame_controller_frame_duration_get_delegate efl_gfx_frame_controller_frame_duration_get_static_delegate; #pragma warning restore CA1707, SA1300, SA1600 } } } } namespace Efl { namespace Gfx { /// Frame loop modes public enum FrameControllerLoopHint { /// No looping order specified. None = 0, /// Standard loop: 1->2->3->1->2->3->1 Loop = 1, /// Ping-pong bouncing loop: 1->2->3->2->1->2->3->1 Pingpong = 2, } } }