public MovieBrowser(MovingPicturesSkinSettings skinSettings) { MovingPicturesCore.OnPowerEvent += new MovingPicturesCore.PowerEventDelegate(PowerEventHandler); this.skinSettings = skinSettings; AutoRefresh = false; init(); listItems = new Dictionary<DatabaseTable, GUIListItem>(); availableMovies = new Dictionary<DBNode<DBMovieInfo>, HashSet<DBMovieInfo>>(); possibleMovies = new Dictionary<DBNode<DBMovieInfo>, HashSet<DBMovieInfo>>(); availabilityCheckQueue = new Queue<DBMovieInfo>(); filterUpdatedDelegate = new FilterUpdatedDelegate<DBMovieInfo>(onFilterUpdated); // setup thread to work in the background to update gui menu items based on their availability Thread availabilityCheckThread = new Thread(new ThreadStart(delegate() { availabilityCheckProcess(); })); availabilityCheckThread.IsBackground = true; availabilityCheckThread.Name = "movie avail. checker"; availabilityCheckThread.Start(); initSortingDefaults(); }
private void onCoreInitializationProgress(string actionName, int percentDone) { // Update the progress variables if (percentDone == 100) { actionName = "Loading GUI ..."; } initProgressLastAction = actionName; initProgressLastPercent = percentDone; // If the progress dialog exists, update it. if (initDialog != null) { initDialog.SetLine(2, initProgressLastAction); initDialog.SetPercentage(initProgressLastPercent); initDialog.Progress(); } // When we are finished initializing if (percentDone == 100) { // Start the background importer if (MovingPicturesCore.Settings.EnableImporterInGUI) { MovingPicturesCore.Importer.Start(); MovingPicturesCore.Importer.Progress += new MovieImporter.ImportProgressHandler(Importer_Progress); } // Load skin based settings from skin file skinSettings = new MovingPicturesSkinSettings(_windowXmlFileName); // Get Moving Pictures specific autoplay setting try { diskInsertedAction = (DiskInsertedAction)Enum.Parse(typeof(DiskInsertedAction), MovingPicturesCore.Settings.DiskInsertionBehavior); } catch { diskInsertedAction = DiskInsertedAction.DETAILS; } // setup the image resources for cover and backdrop display int artworkDelay = MovingPicturesCore.Settings.ArtworkLoadingDelay; // setup the time for the random category backdrop refresh activeMovieLookup.Timeout = new TimeSpan(0, 0, MovingPicturesCore.Settings.CategoryRandomArtworkRefreshInterval); // create backdrop image swapper backdrop = new ImageSwapper(); backdrop.ImageResource.Delay = artworkDelay; backdrop.PropertyOne = "#MovingPictures.Backdrop"; backdrop.PropertyTwo = "#MovingPictures.Backdrop2"; // create cover image swapper cover = new AsyncImageResource(); cover.Property = "#MovingPictures.Coverart"; cover.Delay = artworkDelay; // instantiate player moviePlayer = new MoviePlayer(this); moviePlayer.MovieEnded += new MoviePlayerEvent(onMovieEnded); moviePlayer.MovieStopped += new MoviePlayerEvent(onMovieStopped); // Listen to the DeviceManager for external media activity (i.e. disks inserted) logger.Debug("Listening for device changes."); DeviceManager.OnVolumeInserted += new DeviceManager.DeviceManagerEvent(OnVolumeInserted); DeviceManager.OnVolumeRemoved += new DeviceManager.DeviceManagerEvent(OnVolumeRemoved); // Flag that the GUI is initialized initComplete = true; // If the initDialog is present close it if (initDialog != null) { initDialog.Close(); } // Report that we completed the init logger.Info("GUI Initialization Complete"); } }