private void OpenPreview(LyricArchive archive) { var win = new LyricArchiveViewWindow(archive); win.Owner = this; win.ShowDialog(); }
public static LyricArchiveWrapper GetLyrics(IITTrackWrapper track) { var arcCached = App.LyricCollection.FindById(LyricArchive.GetID(track)); if (arcCached != null && arcCached.Lyric != null) { return(new LyricArchiveWrapper(track, arcCached, true)); } AlsongLyric[] lyrics; LyricArchiveWrapper archive; lyrics = AlsongAPI.SearchByFile(track.Location); if (lyrics?.Length > 0 && TryWrap(track, lyrics[0], out archive)) { return(archive); } lyrics = AlsongAPI.SearchByText(track.Artist, track.Title, 0); if (lyrics?.Length > 0 && TryWrap(track, lyrics[0], out archive)) { return(archive); } return(null); }
private LyricArchiveWrapper(IITTrackWrapper track, LyricArchive archive, bool isArchived) { this.m_archive = archive; this.IsArchived = isArchived; this.Track = track; this.LinesGroup = new LyricLineGroupCollection(archive.Lyric); }
public LyricArchiveViewWindow(LyricArchive archive) { this.InitializeComponent(); this.ctlArtist.Text = archive.Artist; this.ctlTitle.Text = archive.Title; this.ctlAlbum.Text = archive.Album; this.ctlDuration.Text = archive.DurationStr; this.ctlItemsControl.ItemsSource = new LyricLineGroupCollection(archive.Lyric); }
public static bool TryWrap(IITTrackWrapper track, AlsongLyric lyric, out LyricArchiveWrapper archive) { archive = null; if (!lyric.GetLyrics()) { return(false); } var arc = new LyricArchive(track) { LyricID = lyric.LyricID, Lyric = lyric.Lyric, }; archive = new LyricArchiveWrapper(track, arc, false); archive.Save(); return(true); }