From b3bec2694b14f53d04f59f0e2f877ee8ed30e491 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Wed, 6 Mar 2024 08:13:02 -0800 Subject: [PATCH] fetch lyrics async --- ui/browsing/nowplayingpage.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/ui/browsing/nowplayingpage.go b/ui/browsing/nowplayingpage.go index b1757b6..2644ad3 100644 --- a/ui/browsing/nowplayingpage.go +++ b/ui/browsing/nowplayingpage.go @@ -183,14 +183,7 @@ func (a *NowPlayingPage) OnSongChange(song, lastScrobbledIfAny *mediaprovider.Tr a.card.SetCoverImage(nil) return } - if lp, ok := a.sm.Server.(mediaprovider.LyricsProvider); ok { - lyrics, err := lp.GetLyrics(song) - if err == nil { - a.lyricsViewer.SetLyrics(lyrics) - } else { - a.lyricsViewer.SetLyrics(nil) - } - } + a.imageLoadCancel = a.im.GetFullSizeCoverArtAsync(song.CoverArtID, func(img image.Image, err error) { if err != nil { log.Printf("error loading cover art: %v\n", err) @@ -198,6 +191,17 @@ func (a *NowPlayingPage) OnSongChange(song, lastScrobbledIfAny *mediaprovider.Tr a.card.SetCoverImage(img) } }) + + go func() { + if lp, ok := a.sm.Server.(mediaprovider.LyricsProvider); ok { + lyrics, err := lp.GetLyrics(song) + if err == nil { + a.lyricsViewer.SetLyrics(lyrics) + } else { + a.lyricsViewer.SetLyrics(nil) + } + } + }() } func (a *NowPlayingPage) OnPlayQueueChange() {