/// <summary>
 /// Unloads the plug-in.
 /// </summary>
 public void Unload()
 {
     IsLoaded = false;
     _player.IfNotNull(i => i.DataReceived -= Player_DataReceived);
     _player = null;
     PluginUnloaded.IfNotNull(i => i(this));
 }
示例#2
0
        private static void CheckDependencies()
        {
            var indexesOfPluginsWithUnresolvedDeps = new HashSet <int>();

            for (int i = 0; i < _pluginContainers.Count; i++)
            {
                if (_pluginContainers[i].Plugin is IPlugin3 plugin2 && plugin2.Dependencies != null)
                {
                    foreach (string dep in plugin2.Dependencies)
                    {
                        if (!_pluginContainers.Select(l => l.Plugin.Name).Contains(dep))
                        {
                            indexesOfPluginsWithUnresolvedDeps.Add(i);
                        }
                    }
                }
            }
            foreach (int indexOfPluginWithUnresolvedDeps in indexesOfPluginsWithUnresolvedDeps)
            {
                var plugin2 = _pluginContainers[indexOfPluginWithUnresolvedDeps].Plugin;
                _pluginContainers.RemoveAt(indexOfPluginWithUnresolvedDeps);
                PluginUnloaded?.Invoke(plugin2);
                Notify.SmartNotify("Plug-in error", $"Plug-in {plugin2.Name} requires {string.Join(", ", plugin2.Dependencies)}", NotifyUserType.Error, true);
            }
        }
示例#3
0
 /// <summary>
 /// Unloads the plug-in.
 /// </summary>
 public virtual void Unload()
 {
     try
     {
         Mainsail.ActivateTrigger         -= new EventHandler <TriggerEventArgs>(Mainsail_ActivateTrigger);
         Mainsail.DeactivateTrigger       -= new EventHandler <TriggerEventArgs>(Mainsail_DeactivateTrigger);
         Mainsail.TriggerEvaluationFailed -= new EventHandler <TriggerFailureEventArgs>(Mainsail_TriggerEvaluationFailed);
         Mainsail.Dispose();
         if (Mainsail.MastInterface is IDisposable)
         {
             ((IDisposable)Mainsail.MastInterface).Dispose();
         }
         Mainsail = null;
         Source   = null;
         StopRetrievingMarkers();
         player   = null;
         IsLoaded = false;
         PluginUnloaded.IfNotNull(i => i(this));
         SendLogEntry(LogEntryTypes.Unloaded, message: MastMarkerProviderResources.MastMarkerProviderUnloadedLogMessage);
     }
     catch (Exception ex)
     {
         PluginUnloadFailed.IfNotNull(i => i(this, ex));
     }
 }
 /// <summary>
 /// Unloads the plug-in.
 /// </summary>
 public void Unload()
 {
     IsLoaded = false;
     Source   = null;
     StopRetrievingMarkers();
     _previousMarkers.Clear();
     PluginUnloaded.IfNotNull(i => i(this));
     SendLogEntry(KnownLogEntryTypes.TimedTextMarkerProviderUnloaded, message: TimedTextMediaPluginResources.TimedTextMediaPluginUnloadedLogMessage);
 }
 /// <summary>
 /// Unloads the plugin
 /// </summary>
 public void Unload()
 {
     try
     {
         IsLoaded = false;
         PluginUnloaded.IfNotNull(i => i(this));
     }
     catch (Exception err)
     {
         PluginUnloadFailed.IfNotNull(i => i(this, err));
     }
 }
        public void Unload()
        {
            if (_player != null)
            {
                _player.DataReceived -= Player_DataReceived;
                _player.MediaOpened  -= Player_MediaOpened;
                _player.Captions.Remove(_captionRegion);
            }

            IsLoaded = false;
            PluginUnloaded.IfNotNull(i => i(this));
        }
 /// <summary>
 /// Unloads the plug-in.
 /// </summary>
 public void Unload()
 {
     try
     {
         _syncManager.SuspendSync();
         _syncManager = null;
         IsLoaded     = false;
         PluginUnloaded.IfNotNull(i => i(this));
     }
     catch (Exception err)
     {
         PluginUnloadFailed.IfNotNull(i => i(this, err));
     }
 }
 /// <summary>
 /// Unloads a plug-in for  progressive download media.
 /// </summary>
 public void Unload()
 {
     try
     {
         IsLoaded = false;
         DestroyProgressiveMediaElement();
         PluginUnloaded.IfNotNull(i => i(this));
         SendLogEntry(KnownLogEntryTypes.ProgressiveMediaPluginUnloaded, message: ProgressiveMediaPluginResources.ProgressiveMediaPluginUnloadedLogMessage);
     }
     catch (Exception ex)
     {
         PluginUnloadFailed.IfNotNull(i => i(this, ex));
     }
 }
示例#9
0
        private static void InvokeDeinitialize(Plugin plugin)
        {
            try
            {
                Debug.Write(LogType.Log, "Unloading plugin " + plugin);

                PluginUnloading?.Invoke(plugin);

                plugin.Deinitialize();

                PluginUnloaded?.Invoke(plugin);
            }
            catch (Exception ex)
            {
                Debug.LogException(ex);
                Debug.LogErrorFormat("Failed to deinitialize plugin {0}. {1}", plugin, ex.Message);
            }
        }
        public virtual void Unload()
        {
            try
            {
                foreach (var creative in VpaidController.ActiveCreatives.ToList())
                {
                    CancelCreative(creative);
                }

                VpaidController.AdIsLinear     -= new EventHandler <ActiveCreativeEventArgs>(vPaidController_AdIsLinear);
                VpaidController.AdIsNotLinear  -= new EventHandler <ActiveCreativeEventArgs>(vPaidController_AdIsNotLinear);
                VpaidController.Log            -= new EventHandler <ActiveCreativeLogEventArgs>(vPaidController_Log);
                VpaidController.TrackingFailed -= new EventHandler <VpaidController.TrackingFailureEventArgs>(vPaidController_TrackingFailed);
                VpaidController.AdLoaded       -= new EventHandler <ActiveCreativeEventArgs>(vPaidController_AdLoaded);
                VpaidController.AdStopped      -= new EventHandler <ActiveCreativeEventArgs>(vPaidController_AdStopped);
                VpaidController.AdStarted      -= new EventHandler <ActiveCreativeEventArgs>(VpaidController_AdStarted);
                // Note: all 3 events can use the same handler
                VpaidController.AdFailed      -= new EventHandler <ActiveCreativeEventArgs>(vPaidController_AdFailed);
                VpaidController.AdLoadFailed  -= new EventHandler <ActiveCreativeEventArgs>(vPaidController_AdFailed);
                VpaidController.AdStartFailed -= new EventHandler <ActiveCreativeEventArgs>(vPaidController_AdFailed);

                VpaidController.AdRemoved         -= new EventHandler <ActiveCreativeEventArgs>(vPaidController_AdCompleted);
                VpaidController.AdProgressChanged -= new EventHandler <ActiveCreativeEventArgs>(VpaidController_AdProgressChanged);
                VpaidController.AdPaused          -= new EventHandler <ActiveCreativeEventArgs>(VpaidController_AdPaused);
                VpaidController.AdResumed         -= new EventHandler <ActiveCreativeEventArgs>(VpaidController_AdResumed);

                VpaidController = null;
                AdHost          = null;

                isLoaded = false;
                PluginUnloaded.IfNotNull(i => i(this));
            }
            catch (Exception e)
            {
                PluginUnloadFailed.IfNotNull(i => i(this, e));
            }
        }
 public void Unload()
 {
     IsLoaded = false;
     PluginUnloaded.IfNotNull(i => i(this));
 }
示例#12
0
 /// <summary>
 /// Unloads the given plugin.
 /// </summary>
 /// <param name="plugin">The plugin to unload.</param>
 public static void Unload(RPlugin plugin)
 {
     PluginUnloaded?.Invoke(_plugins[plugin]);
     plugin.Unload();
     _plugins.Remove(plugin);
 }
示例#13
0
 protected virtual void OnPluginUnloaded(PluginEventArgs e)
 {
     PluginUnloaded?.Invoke(this, e);
 }
 public virtual void Unload()
 {
     isLoaded = false;
     PluginUnloaded.IfNotNull(i => i(this));
 }
示例#15
0
 /// <summary>
 ///     Raises the <see cref="PluginUnloaded" /> event.
 /// </summary>
 /// <seealso cref="EventArgs" />
 protected virtual void OnPluginUnloaded()
 {
     PluginUnloaded?.Invoke(this, EventArgs.Empty);
 }
示例#16
0
 internal async void OnPluginUnloaded(IPluginContainer container)
 {
     await _taskFactory.StartNew(() => PluginUnloaded?.Invoke(this, new PluginEventArgs(container))).ConfigureAwait(false);
 }
示例#17
0
 private void PluginHostProxyDisposed(object sender, EventArgs e)
 {
     PluginUnloaded?.Invoke(this, new PluginUnloadedEventArgs(((PluginHostProxy)sender).RemoteView));
 }