public OnlineMatcherService()
        {
            MUSIC_MATCHERS.Add(MusicTheAudioDbMatcher.Instance);
            MUSIC_MATCHERS.Add(MusicFreeDbMatcher.Instance);
            MUSIC_MATCHERS.Add(MusicBrainzMatcher.Instance);
            MUSIC_MATCHERS.Add(MusicFanArtTvMatcher.Instance);

            MOVIE_MATCHERS.Add(MovieTheMovieDbMatcher.Instance);
            //MOVIE_MATCHERS.Add(MovieOmDbMatcher.Instance);
            MOVIE_MATCHERS.Add(MovieSimApiMatcher.Instance);
            MOVIE_MATCHERS.Add(MovieFanArtTvMatcher.Instance);

            SERIES_MATCHERS.Add(SeriesTvDbMatcher.Instance);
            SERIES_MATCHERS.Add(SeriesTheMovieDbMatcher.Instance);
            SERIES_MATCHERS.Add(SeriesTvMazeMatcher.Instance);
            //SERIES_MATCHERS.Add(SeriesOmDbMatcher.Instance);
            SERIES_MATCHERS.Add(SeriesFanArtTvMatcher.Instance);

            //Load settings
            LoadSettings();

            //Save settings
            SaveSettings();

            SETTINGS_CHANGE_WATCHER = new SettingsChangeWatcher <OnlineLibrarySettings>();
            SETTINGS_CHANGE_WATCHER.SettingsChanged += SettingsChanged;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Instantiates a new <see cref="NfoMovieMetadataExtractor"/> object
        /// </summary>
        public NfoExtractorBase()
        {
            _name = GetType().Name;

            _settingWatcher = new SettingsChangeWatcher <TSettings>();
            _settingWatcher.SettingsChanged += SettingsChanged;
            _settings = _settingWatcher.Settings;

            if (_settings.EnableDebugLogging)
            {
                _debugLogger = FileLogger.CreateFileLogger(ServiceRegistration.Get <IPathManager>().GetPath(@"<LOG>\" + _name + "Debug.log"), LogLevel.Debug, false, true);
            }
            else
            {
                _debugLogger = new NoLogger();
            }

            var handler = new HttpClientHandler();

            if (handler.SupportsAutomaticDecompression)
            {
                // This enables the automatic decompression of the content. It does not automatically send an "Accept-Encoding" header!
                // We therefore have to add the Accept-Encoding header(s) manually below.
                // Additionally, due to the automatic decompression, HttpResponseMessage.Content.Headers DOES NOT contain
                // a "Content-Encoding" header anymore when we try to access it. It is automatically removed when decompressing.
                handler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            }
            else
            {
                _debugLogger.Warn("HttpClient does not support compression");
            }
            _httpClient = new HttpClient(handler);
            _httpClient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("gzip"));
            _httpClient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("deflate"));
        }
Exemplo n.º 3
0
 void Init()
 {
     _currentScreenModeProperty = new WProperty(typeof(ScreenMode));
     _settings = new SettingsChangeWatcher <AppSettings>();
     _settings.SettingsChanged += OnSettingsChanged;
     CurrentScreenMode          = _settings.Settings.ScreenMode;
 }
 static ShowVirtualSetting()
 {
     _settingsWatcher = new SettingsChangeWatcher <ViewSettings>();
     _settingsWatcher.SettingsChanged += SettingsChanged;
     ShowVirtualSeriesMedia            = _settingsWatcher.Settings.ShowVirtualSeriesMedia;
     ShowVirtualMovieMedia             = _settingsWatcher.Settings.ShowVirtualMovieMedia;
     ShowVirtualAudioMedia             = _settingsWatcher.Settings.ShowVirtualAudioMedia;
 }
        public BaseAppLauncherMenuAction(string actionId, int appNumber)
        {
            _actionId  = actionId;
            _appNumber = appNumber;

            _appChanges = new SettingsChangeWatcher <Apps>(true);
            _appChanges.SettingsChanged += SettingsChanged;
        }
Exemplo n.º 6
0
        private void SubscribeToMessages()
        {
            _settingsWatcher = new SettingsChangeWatcher <NereusSkinSettings>(true);
            _settingsWatcher.SettingsChanged += OnSettingsChanged;

            _messageQueue.SubscribeToMessageChannel(WorkflowManagerMessaging.CHANNEL);
            _messageQueue.MessageReceived += OnMessageReceived;
        }
Exemplo n.º 7
0
 public PowerMenuModel()
 {
   _isMenuOpenProperty = new WProperty(typeof(bool), true);
   _menuItems = new ItemsList();
   _settings = new SettingsChangeWatcher<SystemStateDialogSettings>();
   _settings.SettingsChanged = OnSettingsChanged;
   _needsUpdate = true;
 }
Exemplo n.º 8
0
 public PowerMenuModel()
 {
     _isMenuOpenProperty       = new WProperty(typeof(bool), true);
     _menuItems                = new ItemsList();
     _settings                 = new SettingsChangeWatcher <SystemStateDialogSettings>();
     _settings.SettingsChanged = OnSettingsChanged;
     _needsUpdate              = true;
 }
Exemplo n.º 9
0
 public HomeMenuActionProxy()
 {
     _groups                    = new List <HomeMenuGroup>();
     _groupedActions            = new Dictionary <Guid, HomeMenuAction>();
     _availableActions          = new Dictionary <Guid, WorkflowAction>();
     _settings                  = new SettingsChangeWatcher <HomeEditorSettings>();
     _settings.SettingsChanged += OnSettingsChanged;
 }
Exemplo n.º 10
0
 protected void Init()
 {
     _fanArtSync            = new KeyedAsyncReaderWriterLock <Guid>();
     _fanArtCounts          = new AsyncStaticTimeoutCache <string, FanArtCount>(FANART_COUNT_TIMEOUT);
     _maxFanArtCounts       = new Dictionary <string, int>();
     _settingsChangeWatcher = new SettingsChangeWatcher <FanArtSettings>();
     _settingsChangeWatcher.SettingsChanged += SettingsChanged;
     LoadSettings();
 }
Exemplo n.º 11
0
        /// <summary>
        /// Instantiates a new <see cref="NfoMovieMetadataExtractor"/> object
        /// </summary>
        public NfoMovieMetadataExtractor()
        {
            // The metadataExtractorPriority is intentionally set wrong to "Extended" although, depending on the
            // content of the nfo-file, it may download thumbs from the internet (and should therefore be
            // "External"). This is a temporary workaround for performance purposes. It ensures that this
            // MetadataExtractor is applied before the VideoThumbnailer (which is intentionally set to "External"
            // although it only uses local files). Creating thumbs with the VideoThumbnailer takes much longer
            // than downloading them from the internet.
            // ToDo: Correct this once we have a better priority system
            _metadata = new MetadataExtractorMetadata(
                metadataExtractorId: METADATAEXTRACTOR_ID,
                name: "Nfo movie metadata extractor",
                metadataExtractorPriority: MetadataExtractorPriority.Extended,
                processesNonFiles: true,
                shareCategories: MEDIA_CATEGORIES,
                extractedAspectTypes: new MediaItemAspectMetadata[]
            {
                MediaAspect.Metadata,
                MovieAspect.Metadata,
                ThumbnailLargeAspect.Metadata
            });

            _settingWatcher = new SettingsChangeWatcher <NfoMovieMetadataExtractorSettings>();
            _settingWatcher.SettingsChanged += SettingsChanged;

            LoadSettings();

            _settings = _settingWatcher.Settings;

            if (_settings.EnableDebugLogging)
            {
                _debugLogger = FileLogger.CreateFileLogger(ServiceRegistration.Get <IPathManager>().GetPath(@"<LOG>\NfoMovieMetadataExtractorDebug.log"), LogLevel.Debug, false, true);
                LogSettings();
            }
            else
            {
                _debugLogger = new NoLogger();
            }

            var handler = new HttpClientHandler();

            if (handler.SupportsAutomaticDecompression)
            {
                // This enables the automatic decompression of the content. It does not automatically send an "Accept-Encoding" header!
                // We therefore have to add the Accept-Encoding header(s) manually below.
                // Additionally, due to the automatic decompression, HttpResponseMessage.Content.Headers DOES NOT contain
                // a "Content-Encoding" header anymore when we try to access it. It is automatically removed when decompressing.
                handler.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
            }
            else
            {
                _debugLogger.Warn("HttpClient does not support compression");
            }
            _httpClient = new HttpClient(handler);
            _httpClient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("gzip"));
            _httpClient.DefaultRequestHeaders.AcceptEncoding.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("deflate"));
        }
Exemplo n.º 12
0
        public bool Init()
        {
            ServiceRegistration.Get <IMessageBroker>().RegisterMessageReceiver(SystemMessaging.CHANNEL, this);
            ServiceRegistration.Get <IMessageBroker>().RegisterMessageReceiver(ClientManagerMessaging.CHANNEL, this);

            _settingWatcher = new SettingsChangeWatcher <SlimTvGenreColorSettings>();
            _settingWatcher.SettingsChanged += SettingsChanged;
            _settingWatcher.Refresh();
            return(true);
        }
Exemplo n.º 13
0
 /// <summary>
 /// Waits for all scheduled tasks to complete and disposes.
 /// </summary>
 public void Dispose()
 {
     UnsubscribeFromMessages();
     if (_settings != null)
     {
         _settings.Dispose();
         _settings = null;
     }
     CompleteBlocks();
 }
Exemplo n.º 14
0
 void InitSettingsWatcher()
 {
     if (_settings != null)
     {
         return;
     }
     _settings = new SettingsChangeWatcher <SlimTvClientSettings>(true);
     UpdatePropertiesFromSettings(_settings.Settings);
     _settings.SettingsChanged = OnSettingsChanged;
 }
        public SubtitleMetadataExtractor()
        {
            _metadata = new MetadataExtractorMetadata(METADATAEXTRACTOR_ID, "Subtitle metadata extractor", MetadataExtractorPriority.FallBack, true,
                                                      MEDIA_CATEGORIES, new MediaItemAspectMetadata[]
            {
                SubtitleAspect.Metadata,
            });

            _settingWatcher = new SettingsChangeWatcher <SubtitleMetadataExtractorSettings>();
            _settingWatcher.SettingsChanged += SettingsChanged;
        }
Exemplo n.º 16
0
        public OnlineMatcherService()
        {
            _settingChangeWatcher = new SettingsChangeWatcher <OnlineLibrarySettings>();
            _settingChangeWatcher.SettingsChanged += SettingsChanged;

            _messageQueue = new AsynchronousMessageQueue(this, new[]
            {
                SystemMessaging.CHANNEL,
            });
            _messageQueue.MessageReceived += OnMessageReceived;
            _messageQueue.Start();
        }
        public SiteManagementWorkflowModel()
        {
            SitesList = new ItemsList();
            // make sure the main workflowmodel is initialized
            var ovMainModel = ServiceRegistration.Get<IWorkflowManager>().GetModel(Guids.WorkFlowModelOV) as OnlineVideosWorkflowModel;

            _messageQueue = new AsynchronousMessageQueue(this, new string[] { OnlineVideosMessaging.CHANNEL });
            _messageQueue.MessageReceived += new MessageReceivedHandler(OnlineVideosMessageReceived);

            _settingsWatcher = new SettingsChangeWatcher<Configuration.Settings>();
            _settingsWatcher.SettingsChanged += OnlineVideosSettingsChanged;
        }
        public SiteManagementWorkflowModel()
        {
            SitesList = new ItemsList();
            // make sure the main workflowmodel is initialized
            var ovMainModel = ServiceRegistration.Get <IWorkflowManager>().GetModel(Guids.WorkFlowModelOV) as OnlineVideosWorkflowModel;

            _messageQueue = new AsynchronousMessageQueue(this, new string[] { OnlineVideosMessaging.CHANNEL });
            _messageQueue.MessageReceived += new MessageReceivedHandler(OnlineVideosMessageReceived);

            _settingsWatcher = new SettingsChangeWatcher <Configuration.Settings>();
            _settingsWatcher.SettingsChanged += OnlineVideosSettingsChanged;
        }
 public NetworkNeighborhoodResourceProvider()
 {
   _metadata = new ResourceProviderMetadata(NETWORK_NEIGHBORHOOD_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, false, true, DEFAULT_SYSTEM_AFFINITY);
   _browserService = new NeighborhoodBrowserService();
   _settings =  new SettingsChangeWatcher<NetworkNeighborhoodResourceProviderSettings>();
   _registeredPaths = new ConcurrentBag<ResourcePath>();
   RegisterCredentials();
   _settings.SettingsChanged += (sender, args) =>
   {
     UnregisterCredentials();
     RegisterCredentials();
   };
 }
Exemplo n.º 20
0
 public NetworkNeighborhoodResourceProvider()
 {
     _metadata        = new ResourceProviderMetadata(NETWORK_NEIGHBORHOOD_RESOURCE_PROVIDER_ID, RES_RESOURCE_PROVIDER_NAME, RES_RESOURCE_PROVIDER_DESCRIPTION, false, true, DEFAULT_SYSTEM_AFFINITY);
     _browserService  = new NeighborhoodBrowserService();
     _settings        = new SettingsChangeWatcher <NetworkNeighborhoodResourceProviderSettings>();
     _registeredPaths = new ConcurrentBag <ResourcePath>();
     RegisterCredentials();
     _settings.SettingsChanged += (sender, args) =>
     {
         UnregisterCredentials();
         RegisterCredentials();
     };
 }
        static BaseScriptableMovieMetadataExtractor()
        {
            ISettingsManager settingsManager = ServiceRegistration.Get <ISettingsManager>();
            var settings = settingsManager.Load <ScriptableMetadataExtractorSettings>();

            if (settings.CustomSettings.Count == 0 && settings.DefaultUserAgent == null)
            {
                settings.DefaultUserAgent = "";
                settings.CustomSettings.Add($"{SAMPLE_KEY}={SAMPLE_VALUE}");
                settingsManager.Save(settings); //Save sample settings so they can be edited
            }

            _scriptableSettingWatcher = new SettingsChangeWatcher <ScriptableMetadataExtractorSettings>();
            _scriptableSettingWatcher.SettingsChanged += (sender, args) =>
            {
                Dictionary <string, string> customSettings = new Dictionary <string, string>();
                foreach (var settingPair in _scriptableSettingWatcher.Settings.CustomSettings)
                {
                    var split = settingPair.Split('=');
                    if (split.Length == 2)
                    {
                        if (string.IsNullOrWhiteSpace(split[0]) || split[0] == SAMPLE_KEY)
                        {
                            continue; //Ignore empty or sample entry
                        }
                        customSettings.Add(split[0], split[1]);
                    }
                }

                //Add update custom settings
                foreach (var setting in customSettings)
                {
                    _customSettings.AddOrUpdate(setting.Key, setting.Value, (k, v) => setting.Value);
                }

                //Delete removed custom settings
                foreach (var settingKey in _customSettings.Keys.Except(customSettings.Keys))
                {
                    _customSettings.TryRemove(settingKey, out _);
                }

                //Update custom user agent
                if (!string.IsNullOrWhiteSpace(_scriptableSettingWatcher.Settings.DefaultUserAgent))
                {
                    _defaultUserAgent = _scriptableSettingWatcher.Settings.DefaultUserAgent;
                }
            };
            _scriptableSettingWatcher.Refresh();

            LoadScripts();
        }
        private void AfterInitialLoad(WorkEventArgs args)
        {
            var ovMP2Settings = ServiceRegistration.Get <ISettingsManager>().Load <Configuration.Settings>();

            if (Sites.Updater.VersionCompatible && ovMP2Settings.AutomaticUpdate)
            {
                _autoUpdateTask = new IntervalWork(PeriodicSitesUpdate, TimeSpan.FromHours(ovMP2Settings.AutomaticUpdateInterval));
                ServiceRegistration.Get <IThreadPool>().AddIntervalWork(_autoUpdateTask, false);
            }

            // start listening to changes of the OnlineVideos configuration settings
            _settingsWatcher = new SettingsChangeWatcher <Configuration.Settings>();
            _settingsWatcher.SettingsChanged += OnlineVideosSettingsChanged;
        }
Exemplo n.º 23
0
        public ImageMetadataExtractor()
        {
            _metadata = new MetadataExtractorMetadata(METADATAEXTRACTOR_ID, "Image metadata extractor", MetadataExtractorPriority.Core, true,
                                                      MEDIA_CATEGORIES, new[]
            {
                MediaAspect.Metadata,
                ImageAspect.Metadata,
                ThumbnailLargeAspect.Metadata
            });
            _settingWatcher = new SettingsChangeWatcher <ImageMetadataExtractorSettings>();
            _settingWatcher.SettingsChanged += SettingsChanged;

            LoadSettings();
        }
Exemplo n.º 24
0
        protected void Init()
        {
            if (!Directory.Exists(FANART_CACHE_PATH))
            {
                Directory.CreateDirectory(FANART_CACHE_PATH);
            }

            _fanArtSync      = new KeyedAsyncReaderWriterLock <Guid>();
            _fanArtCounts    = new AsyncStaticTimeoutCache <string, FanArtCount>(FANART_COUNT_TIMEOUT);
            _maxFanArtCounts = new Dictionary <string, int>();

            _settingsChangeWatcher = new SettingsChangeWatcher <FanArtSettings>();
            _settingsChangeWatcher.SettingsChanged += SettingsChanged;
            LoadSettings();
        }
Exemplo n.º 25
0
 public ImporterWorkerNewGen()
 {
     _actionBlock                   = new ActionBlock <ImporterWorkerAction>(action => ProcessActionRequest(action));
     _importJobControllers          = new ConcurrentDictionary <ImportJobInformation, ImportJobController>();
     _numberOfLastImportJob         = 0;
     _numberOfProgressNotifications = 0;
     _status   = Status.Shutdown;
     _settings = new SettingsChangeWatcher <ImporterWorkerSettings>();
     _settings.SettingsChanged += OnSettingsChanged;
     _messageQueue              = new AsynchronousMessageQueue(this, new[]
     {
         SystemMessaging.CHANNEL,
         TaskSchedulerMessaging.CHANNEL
     });
     _messageQueue.MessageReceived += OnMessageReceived;
 }
        public async void Shutdown()
        {
            if (_settings != null)
            {
                _settings.Dispose();
                _settings = null;
            }
            if (_converter != null)
            {
                await _converter.StopAllTranscodesAsync();

                await _converter.CleanUpTranscodeCacheAsync();

                _converter = null;
            }
        }
        public TranscodingServicePlugin()
        {
            _profileManager = new TranscodeProfileManager();
            ServiceRegistration.Set <ITranscodeProfileManager>(_profileManager);
            Logger.Debug("TranscodingService: Registered TranscodeProfileManager.");

            _analysisLibraryManager = new AnalysisLibraryManager();

            _settings = new SettingsChangeWatcher <TranscodingServiceSettings>();
            _settings.SettingsChanged = OnSettingsChanged;
            _settings.Refresh();

            _tidyUpCacheWork = new IntervalWork(TidyUpCache, CACHE_CLEANUP_INTERVAL);
            IThreadPool threadPool = ServiceRegistration.Get <IThreadPool>();

            threadPool.AddIntervalWork(_tidyUpCacheWork, false);
        }
        public OnlineVideosWorkflowModel()
        {
            SitesList = new ItemsList();

            OnlineVideosAppDomain.UseSeperateDomain = true;

            ServiceRegistration.Get <ISettingsManager>().Load <Configuration.Settings>().SetValuesToApi();
            string ovConfigPath = ServiceRegistration.Get <IPathManager>().GetPath(string.Format(@"<CONFIG>\{0}\", Environment.UserName));
            string ovDataPath   = ServiceRegistration.Get <IPathManager>().GetPath(@"<DATA>\OnlineVideos");

            OnlineVideoSettings.Instance.Logger    = new LogDelegator();
            OnlineVideoSettings.Instance.UserStore = new Configuration.UserSiteSettingsStore();

            OnlineVideoSettings.Instance.DllsDir   = System.IO.Path.Combine(ovDataPath, "SiteUtils");
            OnlineVideoSettings.Instance.ThumbsDir = System.IO.Path.Combine(ovDataPath, "Thumbs");
            OnlineVideoSettings.Instance.ConfigDir = ovConfigPath;

            OnlineVideoSettings.Instance.AddSupportedVideoExtensions(new List <string>()
            {
                ".asf", ".asx", ".flv", ".m4v", ".mov", ".mkv", ".mp4", ".wmv"
            });

            // clear cache files that might be left over from an application crash
            MPUrlSourceFilter.Downloader.ClearDownloadCache();
            // load translation strings in other AppDomain, so SiteUtils can use localized language strings
            TranslationLoader.LoadTranslations(ServiceRegistration.Get <ILocalization>().CurrentCulture.TwoLetterISOLanguageName, System.IO.Path.Combine(System.IO.Path.GetDirectoryName(GetType().Assembly.Location), "Language"), "en", "strings_{0}.xml");
            // The default connection limit is 2 in .Net on most platforms! This means downloading two files will block all other WebRequests.
            System.Net.ServicePointManager.DefaultConnectionLimit = 100;
            // The default .Net implementation for URI parsing removes trailing dots, which is not correct
            Helpers.DotNetFrameworkHelper.FixUriTrailingDots();

            // load the xml that holds all configured sites
            OnlineVideoSettings.Instance.LoadSites();

            // create a message queue where we listen to changes to the sites
            _messageQueue = new AsynchronousMessageQueue(this, new string[] { OnlineVideosMessaging.CHANNEL });
            _messageQueue.MessageReceived += new MessageReceivedHandler(OnlineVideosMessageReceived);

            // listen to changes of configuration settings
            _settingsWatcher = new SettingsChangeWatcher <Configuration.Settings>();
            _settingsWatcher.SettingsChanged += OnlineVideosSettingsChanged;
        }
Exemplo n.º 29
0
        public MovieMetadataExtractor()
        {
            _metadata = new MetadataExtractorMetadata(METADATAEXTRACTOR_ID, "Movies metadata extractor", MetadataExtractorPriority.External, true,
                                                      MEDIA_CATEGORIES, new MediaItemAspectMetadata[]
            {
                MediaAspect.Metadata,
                MovieAspect.Metadata
            });

            _messageQueue = new AsynchronousMessageQueue(this, new string[]
            {
                ImporterWorkerMessaging.CHANNEL,
            });
            _messageQueue.MessageReceived += OnMessageReceived;
            _messageQueue.Start();

            _settingWatcher = new SettingsChangeWatcher <MovieMetadataExtractorSettings>();
            _settingWatcher.SettingsChanged += SettingsChanged;

            LoadSettings();
        }
        public OnlineVideosWorkflowModel()
        {
			SitesList = new ItemsList();

			OnlineVideosAppDomain.UseSeperateDomain = true;

            ServiceRegistration.Get<ISettingsManager>().Load<Configuration.Settings>().SetValuesToApi();
            string ovConfigPath = ServiceRegistration.Get<IPathManager>().GetPath(string.Format(@"<CONFIG>\{0}\", Environment.UserName));
            string ovDataPath = ServiceRegistration.Get<IPathManager>().GetPath(@"<DATA>\OnlineVideos");

            OnlineVideoSettings.Instance.Logger = new LogDelegator();
			OnlineVideoSettings.Instance.UserStore = new Configuration.UserSiteSettingsStore();

			OnlineVideoSettings.Instance.DllsDir = System.IO.Path.Combine(ovDataPath, "SiteUtils");
            OnlineVideoSettings.Instance.ThumbsDir = System.IO.Path.Combine(ovDataPath, "Thumbs");
            OnlineVideoSettings.Instance.ConfigDir = ovConfigPath;

			OnlineVideoSettings.Instance.AddSupportedVideoExtensions(new List<string>() { ".asf", ".asx", ".flv", ".m4v", ".mov", ".mkv", ".mp4", ".wmv" });

			// clear cache files that might be left over from an application crash
			MPUrlSourceFilter.Downloader.ClearDownloadCache();
			// load translation strings in other AppDomain, so SiteUtils can use localized language strings
			TranslationLoader.LoadTranslations(ServiceRegistration.Get<ILocalization>().CurrentCulture.TwoLetterISOLanguageName, System.IO.Path.Combine(System.IO.Path.GetDirectoryName(GetType().Assembly.Location), "Language"), "en", "strings_{0}.xml");
			// The default connection limit is 2 in .Net on most platforms! This means downloading two files will block all other WebRequests.
			System.Net.ServicePointManager.DefaultConnectionLimit = 100;
			// The default .Net implementation for URI parsing removes trailing dots, which is not correct
			Helpers.DotNetFrameworkHelper.FixUriTrailingDots();

			// load the xml that holds all configured sites
			OnlineVideoSettings.Instance.LoadSites();

			// create a message queue where we listen to changes to the sites
			_messageQueue = new AsynchronousMessageQueue(this, new string[] { OnlineVideosMessaging.CHANNEL });
			_messageQueue.MessageReceived += new MessageReceivedHandler(OnlineVideosMessageReceived);

			// listen to changes of configuration settings
			_settingsWatcher = new SettingsChangeWatcher<Configuration.Settings>();
			_settingsWatcher.SettingsChanged += OnlineVideosSettingsChanged;
        }
        public AudioMetadataExtractor()
        {
            _metadata = new MetadataExtractorMetadata(METADATAEXTRACTOR_ID, "Audio metadata extractor", MetadataExtractorPriority.Core, false,
                                                      MEDIA_CATEGORIES, new[]
            {
                MediaAspect.Metadata,
                AudioAspect.Metadata,
                ThumbnailLargeAspect.Metadata
            });

            _messageQueue = new AsynchronousMessageQueue(this, new string[]
            {
                ImporterWorkerMessaging.CHANNEL,
            });
            _messageQueue.MessageReceived += OnMessageReceived;
            _messageQueue.Start();

            _settingWatcher = new SettingsChangeWatcher <AudioMetadataExtractorSettings>();
            _settingWatcher.SettingsChanged += SettingsChanged;

            LoadSettings();
        }
        private void AfterInitialLoad(WorkEventArgs args)
        {
            var ovMP2Settings = ServiceRegistration.Get<ISettingsManager>().Load<Configuration.Settings>();
            if (Sites.Updater.VersionCompatible && ovMP2Settings.AutomaticUpdate)
            {
                _autoUpdateTask = new IntervalWork(PeriodicSitesUpdate, TimeSpan.FromHours(ovMP2Settings.AutomaticUpdateInterval));
                ServiceRegistration.Get<IThreadPool>().AddIntervalWork(_autoUpdateTask, false);
            }

            // start listening to changes of the OnlineVideos configuration settings
            _settingsWatcher = new SettingsChangeWatcher<Configuration.Settings>();
            _settingsWatcher.SettingsChanged += OnlineVideosSettingsChanged;
        }
Exemplo n.º 33
0
 public LoggerConfig()
 {
     _settings = new SettingsChangeWatcher <LogSettings>();
     _settings.SettingsChanged += SettingsChanged;
 }
Exemplo n.º 34
0
 static ProfileManager()
 {
     ProfileLinkChangeWatcher = new SettingsChangeWatcher <ProfileLinkSettings>();
     ProfileLinkChangeWatcher.SettingsChanged += ProfileLinkChanged;
 }
Exemplo n.º 35
0
    /// <summary>
    /// Reads actions/positon from settings.
    /// </summary>
    private void ReadPositions()
    {
      if (_menuSettings == null)
      {
        _menuSettings = new SettingsChangeWatcher<MenuSettings>();
        _menuSettings.SettingsChanged += OnSettingsChanged;
      }
      var menuSettings = _menuSettings.Settings;
      if (menuSettings.MenuItems.Count == 0)
      {
        menuSettings.MainMenuGroupNames = new List<GroupItemSetting>
        {
          new GroupItemSetting { Name = MenuSettings.MENU_NAME_HOME,        Id = new Guid(MenuSettings.MENU_ID_HOME)}, 
          new GroupItemSetting { Name = MenuSettings.MENU_NAME_IMAGE,       Id = new Guid(MenuSettings.MENU_ID_IMAGE)}, 
          new GroupItemSetting { Name = MenuSettings.MENU_NAME_AUDIO,       Id = new Guid(MenuSettings.MENU_ID_AUDIO)}, 
          new GroupItemSetting { Name = MenuSettings.MENU_NAME_MEDIAHUB,    Id = new Guid(MenuSettings.MENU_ID_MEDIAHUB)},
          new GroupItemSetting { Name = MenuSettings.MENU_NAME_TV,          Id = new Guid(MenuSettings.MENU_ID_TV)}, 
          new GroupItemSetting { Name = MenuSettings.MENU_NAME_NEWS,        Id = new Guid(MenuSettings.MENU_ID_NEWS)}, 
          new GroupItemSetting { Name = MenuSettings.MENU_NAME_SETTINGS,    Id = new Guid(MenuSettings.MENU_ID_SETTINGS)}, 
          new GroupItemSetting { Name = MenuSettings.MENU_NAME_OTHERS,      Id = new Guid(MenuSettings.MENU_ID_OTHERS)}
        };
        menuSettings.DefaultMenuGroupId = MenuSettings.MENU_ID_MEDIAHUB;

        var positions = new SerializableDictionary<Guid, GridPosition>();
        positions[new Guid("A4DF2DF6-8D66-479a-9930-D7106525EB07")] = new GridPosition { Column = 0, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_NORMAL, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // Videos
        positions[new Guid("80D2E2CC-BAAA-4750-807B-F37714153751")] = new GridPosition { Column = 0, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_NORMAL, Row = MenuSettings.DEFAULT_ROWSPAN_NORMAL, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // Movies
        positions[new Guid("30F57CBA-459C-4202-A587-09FFF5098251")] = new GridPosition { Column = MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_NORMAL, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // Series
        positions[new Guid("C33E39CC-910E-41C8-BFFD-9ECCD340B569")] = new GridPosition { Column = MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_NORMAL, Row = MenuSettings.DEFAULT_ROWSPAN_NORMAL, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // OnlineVideos

        positions[new Guid("93442DF7-186D-42e5-A0F5-CF1493E68F49")] = new GridPosition { Column = 2 * MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_LARGE }; // Browse Media
        positions[new Guid("17D2390E-5B05-4fbd-89F6-24D60CEB427F")] = new GridPosition { Column = 2 * MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_LARGE }; // Browse Local (exclusive)
        menuSettings.MenuItems[MenuSettings.MENU_NAME_MEDIAHUB] = positions;

        positions = new SerializableDictionary<Guid, GridPosition>();
        positions[new Guid("55556593-9FE9-436c-A3B6-A971E10C9D44")] = new GridPosition { Column = 2 * MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_LARGE }; // Images
        menuSettings.MenuItems[MenuSettings.MENU_NAME_IMAGE] = positions;

        positions = new SerializableDictionary<Guid, GridPosition>();
        positions[new Guid("94961A9E-4C81-4bf7-9EE4-DF9712C3DCF2")] = new GridPosition { Column = 2 * MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_LARGE }; // Images
        menuSettings.MenuItems[MenuSettings.MENU_NAME_HOME] = positions;

        positions = new SerializableDictionary<Guid, GridPosition>();
        positions[new Guid("30715D73-4205-417f-80AA-E82F0834171F")] = new GridPosition { Column = 0, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_NORMAL, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // Audio
        positions[new Guid("E00B8442-8230-4D7B-B871-6AC77755A0D5")] = new GridPosition { Column = MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_LARGE }; // PartyMusicPlayer
        positions[new Guid("2DED75C0-5EAE-4E69-9913-6B50A9AB2956")] = new GridPosition { Column = MenuSettings.DEFAULT_COLSPAN_NORMAL + MenuSettings.DEFAULT_COLSPAN_LARGE, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_NORMAL, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // WebRadio
        menuSettings.MenuItems[MenuSettings.MENU_NAME_AUDIO] = positions;

        positions = new SerializableDictionary<Guid, GridPosition>();
        positions[new Guid("B4A9199F-6DD4-4bda-A077-DE9C081F7703")] = new GridPosition { Column = 0, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_LARGE }; // TV Home
        positions[new Guid("A298DFBE-9DA8-4C16-A3EA-A9B354F3910C")] = new GridPosition { Column = MenuSettings.DEFAULT_COLSPAN_LARGE, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_NORMAL, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // Apollo EPG Link
        positions[new Guid("7F52D0A1-B7F8-46A1-A56B-1110BBFB7D51")] = new GridPosition { Column = MenuSettings.DEFAULT_COLSPAN_LARGE + MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_NORMAL, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // Apollo Recordings Link
        positions[new Guid("87355E05-A15B-452A-85B8-98D4FC80034E")] = new GridPosition { Column = MenuSettings.DEFAULT_COLSPAN_LARGE, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_NORMAL, Row = MenuSettings.DEFAULT_ROWSPAN_NORMAL, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // Apollo Schedules Link
        menuSettings.MenuItems[MenuSettings.MENU_NAME_TV] = positions;

        positions = new SerializableDictionary<Guid, GridPosition>();
        positions[new Guid("BB49A591-7705-408F-8177-45D633FDFAD0")] = new GridPosition { Column = 0, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // News
        positions[new Guid("BD93C5B3-402C-40A2-B323-DA891ED5F50E")] = new GridPosition { Column = 0, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = MenuSettings.DEFAULT_ROWSPAN_NORMAL, RowSpan = MenuSettings.DEFAULT_ROWSPAN_NORMAL }; // Kino
        positions[new Guid("E34FDB62-1F3E-4aa9-8A61-D143E0AF77B5")] = new GridPosition { Column = 2 * MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_LARGE }; // Weather
        menuSettings.MenuItems[MenuSettings.MENU_NAME_NEWS] = positions;

        positions = new SerializableDictionary<Guid, GridPosition>();
        positions[new Guid("F6255762-C52A-4231-9E67-14C28735216E")] = new GridPosition { Column = 2 * MenuSettings.DEFAULT_COLSPAN_NORMAL, ColumnSpan = MenuSettings.DEFAULT_COLSPAN_LARGE, Row = 0, RowSpan = MenuSettings.DEFAULT_ROWSPAN_LARGE }; // Configuration
        menuSettings.MenuItems[MenuSettings.MENU_NAME_SETTINGS] = positions;

        ServiceRegistration.Get<ISettingsManager>().Save(menuSettings);
      }
      //_menuSettings = menuSettings;
      if (_menuSettings.Settings.MainMenuGroupNames.All(key => key.Name != MenuSettings.MENU_NAME_OTHERS))
      {
        _menuSettings.Settings.MainMenuGroupNames.Add(new GroupItemSetting { Name = MenuSettings.MENU_NAME_OTHERS, Id = new Guid(MenuSettings.MENU_ID_OTHERS) });
        ServiceRegistration.Get<ISettingsManager>().Save(menuSettings);
      }
    }
Exemplo n.º 36
0
 public LibRetroMappingModel()
 {
     _settings = new SettingsChangeWatcher <LibRetroSettings>();
     _settings.SettingsChanged += OnSettingsChanged;
     InitSettings();
 }
Exemplo n.º 37
0
 public ImporterWorkerNewGen()
 {
   _actionBlock = new ActionBlock<ImporterWorkerAction>(action => ProcessActionRequest(action));
   _importJobControllers = new ConcurrentDictionary<ImportJobInformation, ImportJobController>();
   _numberOfLastImportJob = 0;
   _numberOfProgressNotifications = 0;
   _status = Status.Shutdown;
   _settings = new SettingsChangeWatcher<ImporterWorkerSettings>();
   _settings.SettingsChanged += OnSettingsChanged;
   _messageQueue = new AsynchronousMessageQueue(this, new[]
     {
       SystemMessaging.CHANNEL,
       TaskSchedulerMessaging.CHANNEL
     });
   _messageQueue.MessageReceived += OnMessageReceived;
 }