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; }
/// <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")); }
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; }
private void SubscribeToMessages() { _settingsWatcher = new SettingsChangeWatcher <NereusSkinSettings>(true); _settingsWatcher.SettingsChanged += OnSettingsChanged; _messageQueue.SubscribeToMessageChannel(WorkflowManagerMessaging.CHANNEL); _messageQueue.MessageReceived += OnMessageReceived; }
public PowerMenuModel() { _isMenuOpenProperty = new WProperty(typeof(bool), true); _menuItems = new ItemsList(); _settings = new SettingsChangeWatcher<SystemStateDialogSettings>(); _settings.SettingsChanged = OnSettingsChanged; _needsUpdate = true; }
public PowerMenuModel() { _isMenuOpenProperty = new WProperty(typeof(bool), true); _menuItems = new ItemsList(); _settings = new SettingsChangeWatcher <SystemStateDialogSettings>(); _settings.SettingsChanged = OnSettingsChanged; _needsUpdate = true; }
public HomeMenuActionProxy() { _groups = new List <HomeMenuGroup>(); _groupedActions = new Dictionary <Guid, HomeMenuAction>(); _availableActions = new Dictionary <Guid, WorkflowAction>(); _settings = new SettingsChangeWatcher <HomeEditorSettings>(); _settings.SettingsChanged += OnSettingsChanged; }
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(); }
/// <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")); }
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); }
/// <summary> /// Waits for all scheduled tasks to complete and disposes. /// </summary> public void Dispose() { UnsubscribeFromMessages(); if (_settings != null) { _settings.Dispose(); _settings = null; } CompleteBlocks(); }
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; }
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(); }; }
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; }
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(); }
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(); }
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; }
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; }
public LoggerConfig() { _settings = new SettingsChangeWatcher <LogSettings>(); _settings.SettingsChanged += SettingsChanged; }
static ProfileManager() { ProfileLinkChangeWatcher = new SettingsChangeWatcher <ProfileLinkSettings>(); ProfileLinkChangeWatcher.SettingsChanged += ProfileLinkChanged; }
/// <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); } }
public LibRetroMappingModel() { _settings = new SettingsChangeWatcher <LibRetroSettings>(); _settings.SettingsChanged += OnSettingsChanged; InitSettings(); }
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; }