/// <summary> /// Call lyric provider to check lyric /// </summary> public void SetLyricSynchronously() { if (!LyricWindow.IsVisible) { return; } Task.Run(async() => { if (_searchLyricTask?.IsTaskBusy() == true) { await Task.WhenAny(_searchLyricTask); } _searchLyricTask = Task.Run(async() => { if (!_controller.IsPlayerReady) { return; } var lyricInst = Service.Get <LyricsInst>(); var meta = _controller.PlayList.CurrentInfo.OsuFile.Metadata; MetaString metaArtist = meta.ArtistMeta; MetaString metaTitle = meta.TitleMeta; var lyric = await lyricInst.LyricProvider.GetLyricAsync(metaArtist.ToUnicodeString(), metaTitle.ToUnicodeString(), (int)_controller.Player.Duration.TotalMilliseconds); LyricWindow.SetNewLyric(lyric, metaArtist, metaTitle); LyricWindow.StartWork(); }); }); }
private void ItemSearchTitle_Click(object sender, System.Windows.RoutedEventArgs e) { var map = GetSelectedDefault(); if (map == null) return; ParentWindow.MainFrame.Navigate(new SearchPage(ParentWindow, MetaString.GetUnicode(map.Title, map.TitleUnicode))); }
public void SetNewLyric(Lyrics lyric, MetaString metaArtist, MetaString metaTitle) { StopWork(); _lyricList = lyric?.LyricSentencs ?? new List <Sentence>(); _lyricList.Insert(0, new Sentence($"{metaArtist.ToUnicodeString()} - {metaTitle.ToUnicodeString()}", 0)); }
private void ItemSearchTitle_Click(object sender, RoutedEventArgs e) { var map = GetSelected(); if (map == null) { return; } _mainWindow.MainFrame.Navigate(new SearchPage(_mainWindow, MetaString.GetUnicode(map.Title, map.TitleUnicode))); }
public new void Show() { var meta = _controller.PlayList.CurrentInfo?.OsuFile?.Metadata; MetaString metaArtist = meta?.ArtistMeta ?? default; MetaString metaTitle = meta?.TitleMeta ?? default; SetNewLyric(null, metaArtist, metaTitle); AppSettings.Default.Lyric.EnableLyric = true; AppSettings.SaveDefault(); ViewModel.IsLyricWindowShown = true; _mainWindow.SetLyricSynchronously(); base.Show(); }
public static IEnumerable <Beatmap> SortBy(IEnumerable <Beatmap> list, SortMode sortMode) { switch (sortMode) { case SortMode.Artist: default: return(list.OrderBy(k => MetaString.GetUnicode(k.Artist, k.ArtistUnicode), StringComparer.InvariantCulture)); case SortMode.Title: return(list.OrderBy(k => MetaString.GetUnicode(k.Title, k.TitleUnicode), StringComparer.InvariantCulture)); } }