/// <summary> /// Refresh /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnArtRefresh_Click(object sender, EventArgs e) { DBBasicInfo mv = null; switch (tcMusicVideo.SelectedTab.Name) { case "tpArtist": mv = CurrentArtist; break; case "tpAlbum": mv = CurrentAlbum; break; case "tpTrack": mv = CurrentTrack; break; } if (mv == null) return; List<DBSourceInfo> r1 = new List<DBSourceInfo>(); foreach (DBSourceInfo r2 in mvCentralCore.DataProviderManager.AllSources) { var flag = false; if (mv.GetType() == typeof(DBArtistInfo)) flag = r2.Provider.ProvidesArtistArt; if (mv.GetType() == typeof(DBAlbumInfo)) flag = r2.Provider.ProvidesAlbumArt; if (mv.GetType() == typeof(DBTrackInfo)) flag = r2.Provider.ProvidesTrackArt; if (flag) { r1.Add(r2); } } SourcePopup sp = new SourcePopup(r1); if (sp.ShowDialog() == DialogResult.OK) { mv.PrimarySource = r1[sp.listBox1.SelectedIndex]; } // the update process can take a little time, so spawn it off in another thread ThreadStart actions = delegate { startArtProgressBar(); mvCentralCore.DataProviderManager.GetArt(mv, true); stopArtProgressBar(); }; Thread thread = new Thread(actions); thread.Name = "ArtUpdater"; thread.Start(); }
private void tsmGetInfo_Click(object sender, EventArgs e) { DBBasicInfo mv = null; switch (tcMusicVideo.SelectedTab.Name) { case "tpArtist": mv = CurrentArtist; break; case "tpAlbum": mv = CurrentAlbum; break; case "tpTrack": mv = CurrentTrack; break; } if (mv == null) return; var r1 = new List<DBSourceInfo>(); foreach (DBSourceInfo r2 in mvCentralCore.DataProviderManager.AllSources) { var flag = false; if (mv.GetType() == typeof(DBArtistInfo)) flag = r2.Provider.ProvidesArtistDetails; if (mv.GetType() == typeof(DBAlbumInfo)) flag = r2.Provider.ProvidesAlbumDetails; if (mv.GetType() == typeof(DBTrackInfo)) flag = r2.Provider.ProvidesTrackDetails; if (flag) { r1.Add(r2); } } var sp = new SourcePopup(r1); if (sp.ShowDialog() != DialogResult.OK) return; mv.PrimarySource = r1[sp.listBox1.SelectedIndex]; // the update process can take a little time, so spawn it off in another thread ThreadStart actions = delegate { startArtProgressBar(); mv.PrimarySource.Provider.ProgressChanged += (s, args) => updateProgressBar(((ProgressEventArgs)args).Text); mv.PrimarySource.Provider.GetDetails(mv); mv.Commit(); stopArtProgressBar(); }; var thread = new Thread(actions); thread.Name = "DetailsUpdater"; thread.Start(); }