/** * Register a call-back to receive native media player events. */ private void RegisterEventListener() { Logger.Debug("RegisterEventListener()"); callback = new MediaListCallbackDelegate(HandleEvent); IntPtr callbackPtr = Marshal.GetFunctionPointerForDelegate(callback); foreach (int value in Enum.GetValues(typeof(libvlc_event_e))) { if (value >= (int)libvlc_event_e.libvlc_MediaListItemAdded && value <= (int)libvlc_event_e.libvlc_MediaListWillDeleteItem) { Logger.Debug("event={}", value); int result = LibVlc.libvlc_event_attach(mediaListEventManager, value, callbackPtr, IntPtr.Zero); Logger.Debug("result={}", result); } } }
/** * */ private void RegisterEventListener() { Logger.Debug("RegisterEventListener()"); callback = new VlcVideoPlayerCallbackDelegate(HandleEvent); IntPtr callbackPtr = Marshal.GetFunctionPointerForDelegate(callback); foreach (int value in Enum.GetValues(typeof(libvlc_event_e))) { // The native event manager reports that it does not support // libvlc_MediaListPlayerPlayed or libvlc_MediaListPlayerStopped if (value >= (int)libvlc_event_e.libvlc_MediaListPlayerNextItemSet && value <= (int)libvlc_event_e.libvlc_MediaListPlayerNextItemSet) { Logger.Debug("event={}", (libvlc_event_e)value); int result = LibVlc.libvlc_event_attach(mediaListPlayerEventManager, value, callbackPtr, IntPtr.Zero); Logger.Debug("result={}", result); } } }