private void LoadPlugins()
        {
            string path = P2pProxyApp.ExeDir + "/plugins";

            if (Directory.Exists(path))
            {
                foreach (var file in Directory.GetFiles(path, "*.dll"))
                {
                    IPluginProxy plugin = LoadPlugin(file);
                    if (plugin != null)
                    {
                        _plugins.Add(plugin);
                    }
                }
            }
            path = P2pProxyApp.ApplicationDataFolder + "/plugins";
            if (Directory.Exists(path))
            {
                foreach (var file in Directory.GetFiles(path))
                {
                    IPluginProxy plugin = LoadPlugin(file);
                    if (plugin != null)
                    {
                        _plugins.Add(plugin);
                    }
                }
            }
        }
 void plugin_Logger(IPluginProxy sender, string message)
 {
     if (sender != null)
     {
         P2pProxyApp.Log.Write(string.Format("[{0}({2})]: {1}", sender.Id, message, sender.GetType().Module), TypeMessage.Info);
     }
 }
Beispiel #3
0
        PluginConfigAccessor GetConfigAccessor(INamedVersionedUniqueId idEdited)
        {
            Debug.Assert(idEdited != null);
            Debug.Assert(_contextObject != null);

            // Switch from whatever INamedVersionedUniqueId is to IPluginProxy... if it is loaded.
            IPluginProxy p = idEdited as IPluginProxy;

            if (p == null)
            {
                p = (IPluginProxy)_host.FindLoadedPlugin(idEdited.UniqueId, true);
                if (p == null)
                {
                    _configAccessors.Remove(idEdited);
                    return(null);
                }
            }
            PluginConfigAccessor result;

            if (!_configAccessors.TryGetValue(p, out result))
            {
                result = new PluginConfigAccessor(p, _config.Extended, _contextObject);
                _configAccessors.Add(p, result);
            }
            return(result);
        }
Beispiel #4
0
 public void Init(string host)
 {
     ThisClass = this;
     _host = host;
     _content = new FavouriteContentProvider(_host);
     _menus = new List<string> {SETTINGS_MENU, ABOUT_MENU};
     RaiseLogger("Плагин инициализирован");
 }
Beispiel #5
0
 public ToolboxModel(IServer server, IServer localServer, IPluginProxy pluginProxy)
 {
     VerifyArgument.AreNotNull(new Dictionary <string, object> {
         { "server", server }, { "localServer", localServer }
     });
     _localServer = localServer;
     _pluginProxy = pluginProxy;
     Server       = server;
 }
Beispiel #6
0
 public void Init(string host)
 {
     ThisClass = this;
     _host     = host;
     _content  = new FavouriteContentProvider(_host);
     _menus    = new List <string> {
         SETTINGS_MENU, ABOUT_MENU
     };
     RaiseLogger("Плагин инициализирован");
 }
        public BeSafeFileSystemImpl(string path, IPluginProxy pluginRegulator)
        {
            if (!Directory.Exists(path))
            {
                throw new ArgumentException(nameof(path));
            }

            this.path        = path;
            _pluginRegulator = pluginRegulator;
        }
Beispiel #8
0
 public PluginContainer(ItemContainer parent, P2pProxyDevice device, IPluginProxy plugin) : base(parent, device)
 {
     _plugin = plugin;
     Id      = _plugin.Id;
     Title   = _plugin.Name;
     if (parent != null)
     {
         ParentId = parent.GetIds();
     }
     Type = MediaType.Video;
 }
Beispiel #9
0
        private void ConfigureConfigAccessors(IPluginProxy p)
        {
            Type pType = p.RealPluginObject.GetType();

            foreach (IPluginConfigAccessorInfo e in p.PluginKey.EditorsInfo)
            {
                Debug.Assert(e.Plugin == p.PluginKey);
                if (e.IsConfigurationPropertyValid)
                {
                    // The PluginConfigAccessor may be null.
                    PluginConfigAccessor a       = GetConfigAccessor(e.EditedSource);
                    PropertyInfo         pEdited = pType.GetProperty(e.ConfigurationPropertyName);
                    Debug.Assert(pEdited != null);
                    pEdited.SetValue(p.RealPluginObject, a, null);
                }
            }
        }
        public SkinBasicConfigViewModel( AppViewModel app )
            : base(app.ConfigManager)
        {
            DisplayName = R.SkinBasicConfig;
            _app = app;
            _app.PluginRunner.PluginHost.StatusChanged += ( o, e ) =>
            {
                if( e.PluginProxy.PluginKey.PluginId == _skinId && _skinPlugin == null )
                {
                    _skinPlugin = _app.PluginRunner.PluginHost.FindLoadedPlugin( _skinId, true );
                    _config = _app.ConfigContainer.GetObjectPluginConfig( _app.CivikeyHost.Context.ConfigManager.UserConfiguration, _skinPlugin );
                }

                NotifyOfPropertyChange( () => ActivateSkin );
                NotifyOfPropertyChange( () => EnableAutoHide );
                NotifyOfPropertyChange( () => AutoHideTimeOut );
            };
        }
 private IPluginProxy LoadPlugin(string path)
 {
     try
     {
         Assembly asm  = Assembly.LoadFile(path);
         var      type = asm.GetTypes().FirstOrDefault(type1 => type1.GetInterface("IPluginProxy") != null);
         if (type != null)
         {
             IPluginProxy plugin = (IPluginProxy)asm.CreateInstance(type.FullName);
             {
                 if (plugin != null)
                 {
                     return(plugin);
                 }
             }
         }
         return(null);
     }
     catch (Exception ex)
     {
         P2pProxyApp.Log.Write(string.Format("[{0}] {1}", path, ex.Message), TypeMessage.Error);
         return(null);
     }
 }
 /// <summary>
 /// Initializes a new instance of a <see cref="PluginStatusChangedEventArgs"/>.
 /// </summary>
 /// <param name="previous">The previous running status.</param>
 /// <param name="current">The plugin proxy.</param>
 public PluginStatusChangedEventArgs(RunningStatus previous, IPluginProxy pluginProxy)
 {
     Previous    = previous;
     PluginProxy = pluginProxy;
 }
 void InitializePlugin()
 {
     _skinPlugin = _app.PluginRunner.PluginHost.FindLoadedPlugin( _skinId, true );
     if( _skinPlugin != null ) _config = _app.ConfigContainer.GetObjectPluginConfig( _app.CivikeyHost.Context.ConfigManager.UserConfiguration, _skinPlugin );
 }
Beispiel #14
0
        /// <summary>
        /// Checks whether a plugin is running or not.
        /// </summary>
        /// <param name="key">Plugin identifier.</param>
        /// <returns>True if the plugin is loaded and is currently running.</returns>
        public static bool IsPluginRunning(this IPluginHost host, Guid key)
        {
            IPluginProxy p = host.FindLoadedPlugin(key, false);

            return(p != null && host.IsPluginRunning(p.PluginKey));
        }
 void plugin_Logger(IPluginProxy sender, string message)
 {
     if (sender != null)
         P2pProxyApp.Log.Write(string.Format("[{0}({2})]: {1}", sender.Id, message, sender.GetType().Module), TypeMessage.Info);
 }
Beispiel #16
0
 public PluginContainer(ItemContainer parent, P2pProxyDevice device, IPluginProxy plugin) : base(parent, device)
 {
     _plugin = plugin;
     Id = _plugin.Id;
     Title = _plugin.Name;
     if (parent != null)
         ParentId = parent.GetIds();
     Type = MediaType.Video;
 }
Beispiel #17
0
 void ConfigurePlugin(IPluginProxy p)
 {
     _config.Extended.Container.Ensure(p);
     ConfigureConfigAccessors(p);
 }
Beispiel #18
0
        void InitializePlugin()
        {
            bool info = _pluginInfo == null;
            bool plugin = _plugin == null;

            _pluginInfo = _pluginInfo ?? _app.PluginRunner.Discoverer.FindPlugin( _editedPluginId );
            _plugin = _plugin ?? _app.PluginRunner.PluginHost.FindLoadedPlugin( _editedPluginId, true );

            if( _plugin != null )
            {
                _config = _app.ConfigContainer.GetObjectPluginConfig( _app.CivikeyHost.Context.ConfigManager.UserConfiguration, _plugin );
                Debug.Assert( _config != null );
            }

            if( info && _pluginInfo != null ) OnPluginDiscovered();
            if( plugin && _plugin != null ) OnPluginLoaded();

            NotifyOfPropertiesChange();
        }
 private void ConfigureConfigAccessors( IPluginProxy p )
 {
     Type pType = p.RealPluginObject.GetType();
     foreach( IPluginConfigAccessorInfo e in p.PluginKey.EditorsInfo )
     {
         Debug.Assert( e.Plugin == p.PluginKey );
         if( e.IsConfigurationPropertyValid )
         {
             // The PluginConfigAccessor may be null.
             PluginConfigAccessor a = GetConfigAccessor( e.EditedSource );
             PropertyInfo pEdited = pType.GetProperty( e.ConfigurationPropertyName );
             Debug.Assert( pEdited != null );
             pEdited.SetValue( p.RealPluginObject, a, null );
         }
     }
 }
Beispiel #20
0
 public void Dispose()
 {
     RaiseLogger("Уничтожение плагина");
     ThisClass = null;
     
 }
        /// <summary>
        /// Initializes a new instance of a <see cref="PluginStatusChangedEventArgs"/>.
        /// </summary>
        /// <param name="previous">The previous running status.</param>
        /// <param name="current">The plugin proxy.</param>
        public PluginStatusChangedEventArgs( RunningStatus previous, IPluginProxy pluginProxy )
		{
			Previous = previous;
			PluginProxy = pluginProxy;
		}
Beispiel #22
0
 public void Dispose()
 {
     RaiseLogger("Уничтожение плагина");
     ThisClass = null;
 }