예제 #1
0
        protected void RegisterPluginItemListeners()
        {
            IPluginManager pluginManager = ServiceRegistration.Get <IPluginManager>();

            pluginManager.AddItemRegistrationChangeListener(RESOURCE_PROVIDERS_PLUGIN_LOCATION,
                                                            _resourceProvidersPluginItemChangeListener);
            pluginManager.AddItemRegistrationChangeListener(METADATA_EXTRACTORS_PLUGIN_LOCATION,
                                                            _metadataExtractorsPluginItemChangeListener);
        }
예제 #2
0
        protected void RegisterPluginItemListeners()
        {
            IPluginManager pluginManager = ServiceRegistration.Get <IPluginManager>();

            pluginManager.AddItemRegistrationChangeListener(RESOURCE_PROVIDERS_PLUGIN_LOCATION,
                                                            _resourceProvidersPluginItemChangeListener);
            pluginManager.AddItemRegistrationChangeListener(METADATA_EXTRACTORS_PLUGIN_LOCATION,
                                                            _metadataExtractorsPluginItemChangeListener);
            pluginManager.AddItemRegistrationChangeListener(RELATIONSHIP_EXTRACTORS_PLUGIN_LOCATION,
                                                            _relationshipExtractorPluginItemChangeListener);
            pluginManager.AddItemRegistrationChangeListener(MERGE_HANDLERS_PLUGIN_LOCATION,
                                                            _mergeHandlerPluginItemChangeListener);
            pluginManager.AddItemRegistrationChangeListener(FANART_HANDLERS_PLUGIN_LOCATION,
                                                            _fanartHandlerPluginItemChangeListener);
        }
        public static void LoadServicesFromPlugins()
        {
            IPluginManager pluginManager = Get <IPluginManager>();

            pluginManager.AddItemRegistrationChangeListener(PLUGIN_TREE_SERVICES_LOCATION, _servicesRegistrationChangeListener);
            ILogger logger = Get <ILogger>();

            logger.Info("ServiceRegistration: Loading services from plugin manager at location '{0}'", PLUGIN_TREE_SERVICES_LOCATION);
            ICollection <PluginItemMetadata> items = pluginManager.GetAllPluginItemMetadata(PLUGIN_TREE_SERVICES_LOCATION);

            Instance.AddServiceItems(items);
        }
예제 #4
0
 protected void LoadPlayerBuilders()
 {
     lock (_syncObj)
     {
         IPluginManager pluginManager = ServiceRegistration.Get <IPluginManager>();
         pluginManager.AddItemRegistrationChangeListener(PLAYERBUILDERS_REGISTRATION_PATH, _playerBuilderRegistrationChangeListener);
         foreach (PluginItemMetadata itemMetadata in pluginManager.GetAllPluginItemMetadata(PLAYERBUILDERS_REGISTRATION_PATH))
         {
             LoadPlayerBuilder(itemMetadata.Id);
         }
     }
 }
예제 #5
0
        public SkinManager()
        {
            _skinResourcesPluginItemStateTracker = new DefaultItemStateTracker("SkinManager: Usage of skin resources")
            {
                Stopped = itemRegistration => SkinResourcesWereChanged()
            };
            _skinResourcesRegistrationChangeListener = new DefaultItemRegistrationChangeListener("SkinManager: Usage of skin resources")
            {
                ItemsWereAdded = (location, items) => SkinResourcesWereChanged()
                                 // Item removals are handled by the plugin item state tracker
            };
            _backgroundManagerData = new BackgroundManagerData(this);
            IPluginManager pluginManager = ServiceRegistration.Get <IPluginManager>();

            pluginManager.AddItemRegistrationChangeListener(
                SKIN_RESOURCES_REGISTRATION_PATH, _skinResourcesRegistrationChangeListener);
            ReloadSkins();
        }
예제 #6
0
        protected void InitializeLanguageResources()
        {
            try
            {
                // Add language directories
                IPluginManager pluginManager = ServiceRegistration.Get <IPluginManager>();
                ICollection <PluginResource> languageResources = pluginManager.RequestAllPluginItems <PluginResource>(
                    LANGUAGE_RESOURCES_REGISTRATION_PATH, _languagePluginStateTracker);
                pluginManager.AddItemRegistrationChangeListener(
                    LANGUAGE_RESOURCES_REGISTRATION_PATH, _languageResourcesRegistrationChangeListener);

                lock (_syncObj)
                {
                    _languageDirectories = new List <string>();

                    ILogger logger = ServiceRegistration.Get <ILogger>();
                    foreach (PluginResource resource in languageResources)
                    {
                        logger.Debug("{0}: Adding language directory '{1}'", GetType().Name, resource.Path);
                        if (Directory.Exists(resource.Path))
                        {
                            _languageDirectories.Add(resource.Path);
                        }
                        else
                        {
                            logger.Error("{0}: Language directory doesn't exist: {1}", GetType().Name, resource.Path);
                        }
                    }
                }

                ReLoad();
            }
            catch (Exception e)
            {
                ServiceRegistration.Get <ILogger>().Error("{0}: Error initializing language resources", e, GetType().Name);
            }
        }