private static extern IntPtr libvlc_event_type_name_internal(libvlc_event_type_t event_type);
public static string libvlc_event_type_name(libvlc_event_type_t event_type) { IntPtr strPtr = libvlc_event_type_name_internal(event_type); return(Marshal.PtrToStringAnsi(strPtr)); }
public static string libvlc_event_type_name(libvlc_event_type_t event_type) { IntPtr strPtr = libvlc_event_type_name_internal(event_type); return Marshal.PtrToStringAnsi(strPtr); }
public static extern void libvlc_event_attach(IntPtr p_event_manager, libvlc_event_type_t i_event_type, IntPtr f_callback, IntPtr user_data, ref libvlc_exception_t exception);
public static extern void libvlc_event_detach(IntPtr event_manager, libvlc_event_type_t event_type, EventCallbackDelegate callback, IntPtr user_data);
public static extern IntPtr libvlc_event_type_name(libvlc_event_type_t event_type);
public static extern void libvlc_event_detach(libvlc_event_manager_t p_event_manager, libvlc_event_type_t i_event_type, libvlc_callback_t f_callback, IntPtr p_user_data);
public static extern int libvlc_event_attach(libvlc_event_manager_t p_event_manager, libvlc_event_type_t i_event_type, libvlc_callback_t f_callback, IntPtr user_data);
/// <summary> /// Attaches an event to player with selected eventManager. /// And stores used delegate in internal list. /// </summary> private void attachToEvent(IntPtr eventManager, Delegate eventHandlerDelegate, libvlc_event_type_t eventType) { if (eventManager == IntPtr.Zero) { throw new ArgumentException("IntPtr.Zero is invalid value.", "eventManager"); } if (eventHandlerDelegate == null) { throw new ArgumentNullException("eventHandlerDelegate"); } // libvlc_exception_t exc = new libvlc_exception_t(); LibVlcInterop.libvlc_exception_init(ref exc); LibVlcInterop.libvlc_event_attach(eventManager, eventType, Marshal.GetFunctionPointerForDelegate(eventHandlerDelegate), IntPtr.Zero, ref exc); if (0 != exc.b_raised) { throw new VlcInternalException(exc.Message); } // Save delegate to a private list (to suppress finalizing it) eventDelegates.Add(eventHandlerDelegate); }