private void buttonSearchLyrics_Click(object sender, EventArgs e) { labelSearchLyrics.Text = StringTable.SearchLyrics; labelSearchLyrics.Update(); string lyrics = LyricsSearch.Search(textBoxArtistTrack.Text, textBoxTitleTrack.Text); if (!string.IsNullOrEmpty(lyrics)) { textBoxLyricsTrack.Text = lyrics; labelSearchLyrics.Text = ""; } else { labelSearchLyrics.Text = StringTable.LyricsNotFound; } }
/// <summary> /// Die CD-Daten asynchron laden. /// </summary> public void ReadCDInformation() { cdUserControl.IsEnabled = false; GridWaitProgress.Visibility = System.Windows.Visibility.Visible; CD.Clear(); //CD = new DataBaseEngine.CD(); //cdUserControl.CD = null; BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += delegate { // CD-Informationen im Hintergrund einlesen, damit Hitbase nicht blockiert ist. CDInfo cdInfo = SoundEngine.SoundEngine.Instance.ReadCDInformation(CDEngine.DriveLetter); if (cdInfo != null) { bool mp3AudioCD = false; if (cdInfo.IsPureDataCD()) { Dispatcher.Invoke((Action) delegate { WpfMessageBoxResult result = WPFMessageBox.Show(System.Windows.Application.Current.MainWindow, StringTable.PureDataCDTitle, StringTable.PureDataCD, "/Big3.Hitbase.SharedResources;component/Images/Info.png", WpfMessageBoxButtons.YesNo, "PureDataCDScanFiles", false, 300); if (result == WpfMessageBoxResult.Yes) { ScanDataCD(CDEngine.DriveLetter.ToString() + ":\\"); mp3AudioCD = true; } }); } if (!mp3AudioCD) { CopyCDInfoToCD(cdInfo); } if (!FindCDInDataBase()) { ReadCDTextInformation(cdInfo); if (CD.Tracks.Count > 0 && string.IsNullOrEmpty(CD.Artist) && string.IsNullOrEmpty(CD.Title) && CD.Tracks.All(x => string.IsNullOrEmpty(x.Artist))) { SearchCDInCDArchive(); } if (Settings.Current.AutoDateToday && this.dataBase.Master.DateType != DateType.None) { CD.Date = Misc.GetDate(); } if (Settings.Current.AutoSearchCover) { if (!string.IsNullOrEmpty(CD.Artist) && !string.IsNullOrEmpty(CD.Title)) { CDCoverAmazon.GetCDCover(this.CD); } } if (Settings.Current.AutoSearchLyrics) { Dispatcher.Invoke((Action) delegate { waitProgress.WaitText = StringTable.SearchLyrics; }); foreach (var track in this.CD.Tracks) { if (!string.IsNullOrEmpty(track.Artist) && !string.IsNullOrEmpty(track.Title)) { string lyrics = LyricsSearch.Search(track.Artist, track.Title); if (!string.IsNullOrEmpty(lyrics)) { track.Lyrics = lyrics; } } } } } } }; bw.RunWorkerCompleted += delegate { cdUserControl.IsEnabled = true; GridWaitProgress.Visibility = System.Windows.Visibility.Collapsed; cdUserControl.CD = CD; // Automatisch CD kopieren? if (CDEngine.IsCDInDrive && Big3.Hitbase.Configuration.Settings.Current.RecordAutoCDCopy) { int numsoundfile = 0; foreach (Track track in CD.Tracks) { if (track.SoundFileExists) { numsoundfile += 1; } } // Wenn bereits für alle Tracks ein Soudnfile vorhanden ist mache nix... if (numsoundfile != CD.NumberOfTracks) { HitbaseCommands.StartRecord.Execute(null, this); } } UpdateTabCaption(); // Automatisch abspielen? Wenn im Explorer ein CD-Laufwerk doppelgeklickt wurde. if (autoPlayTrackNumber > 0) { if (this.CD != null && this.CD.Tracks != null && this.CD.Tracks.Count >= autoPlayTrackNumber) { AddToPlaylist(this.CD.Tracks[autoPlayTrackNumber - 1].ID, AddTracksToPlaylistType.Now); } autoPlayTrackNumber = 0; } }; bw.RunWorkerAsync(); }
/// <summary> /// Get Lyrics for selected Rows /// </summary> private void GetLyricsThread() { log.Trace(">>>"); //Make calls to Tracksgrid Threadsafe if (tracksGrid.InvokeRequired) { ThreadSafeGridDelegate d = GetLyricsThread; tracksGrid.Invoke(d, new object[] { }); return; } int count = 0; int trackCount = tracksGrid.SelectedRows.Count; SetProgressBar(trackCount); List<TrackData> tracks = new List<TrackData>(); foreach (DataGridViewRow row in tracksGrid.Rows) { if (!row.Selected) { continue; } count++; Application.DoEvents(); _main.progressBar1.Value += 1; if (_progressCancelled) { ResetProgressBar(); return; } TrackData track = Options.Songlist[row.Index]; if (track.Lyrics == null || Options.MainSettings.OverwriteExistingLyrics) { tracks.Add(track); } } ResetProgressBar(); if (tracks.Count > 0) { try { LyricsSearch lyricssearch = new LyricsSearch(tracks); lyricssearch.Owner = _main; if (_main.ShowModalDialog(lyricssearch) == DialogResult.OK) { DataGridView lyricsResult = lyricssearch.GridView; foreach (DataGridViewRow lyricsRow in lyricsResult.Rows) { if (lyricsRow.Cells[0].Value == DBNull.Value || lyricsRow.Cells[0].Value == null) continue; if ((bool)lyricsRow.Cells[0].Value != true) continue; foreach (DataGridViewRow row in tracksGrid.Rows) { TrackData lyricsTrack = tracks[lyricsRow.Index]; TrackData track = Options.Songlist[row.Index]; if (lyricsTrack.FullFileName == track.FullFileName) { track.Lyrics = (string)lyricsRow.Cells[5].Value; SetBackgroundColorChanged(row.Index); track.Changed = true; Options.Songlist[row.Index] = track; _itemsChanged = true; break; } } } } } catch (Exception ex) { log.Error("Error in Lyricssearch: {0}", ex.Message); } } tracksGrid.Refresh(); tracksGrid.Parent.Refresh(); _main.TagEditForm.FillForm(); log.Trace("<<<"); }