void OnMainWindowShown(object sender, EventArgs e) { if (DesignMode) { return; } var app = AppSettings.Instance; InitializeLog(); SearchEngine.Initialize(app.Providers.Keys.Where(k => app.Providers[k].Enabled)); string[] stopList = File.ReadAllLines(AppSettings.StopListPath) .Select(s => s.Trim()) .Where(s => !string.IsNullOrWhiteSpace(s)) .ToArray(); Library.Initialize(AppSettings.GetFolderPath(), stopList); InitializeSettings(); Playlist.Initialize(); DownloadQueue.Initialize(); PostProcessingQueue.Initialize(); uiDownloadQueue.Initialize(DownloadQueue.Instance); uiPostProcessingQueue.Initialize(PostProcessingQueue.Instance); Action <QueueItem> enqueue = r => uiPostProcessingQueue.Enqueue(r.NewId()); DownloadQueue.Instance.Completed += (s, evt) => BeginInvoke(new Action(() => enqueue(evt.Data))); if (app.UpdateLibraryAfterDownload) { PostProcessingQueue.Instance.Completed += (s, evt) => LibraryScanner.UpdateLibrary(); } uiCurrentResult.SetResult(UiSettings.Instance.CurrentTrack); StartSearch(); DownloadQueue.Start(); PostProcessingQueue.Start(); InitializePlaylist(); InitializeSuggestions(); SuggestionScanner.Suggested += OnScannerSuggestions; SuggestionScanner.Start(app.DelaySuggestionsScan, app.ScanSuggestionsInterval); LibraryScanner.Start(UserSettings.Instance.LibraryFolder, app.TagSeparator, app.DelayLibraryScan, app.ScanLibraryInterval); ShowScrollBar(uiResults.Handle, SbVert, true); ShowScrollBar(uiPlaylist.Handle, SbVert, true); initializing = false; }