Extract and display radio ICY metadata (#845)
* extract and display radio ICY metadata * fix crash when casting radio station
This commit is contained in:
@@ -35,6 +35,7 @@ func NewBottomPanel(pm *backend.PlaybackManager, im *backend.ImageManager, contr
|
||||
bp.ExtendBaseWidget(bp)
|
||||
|
||||
pm.OnSongChange(bp.onSongChange)
|
||||
pm.OnRadioMetadataChange(bp.onRadioMetadataChange)
|
||||
pm.OnWaveformImgUpdate(bp.updateWaveformImg)
|
||||
pm.OnPlayTimeUpdate(func(cur, total float64, _ bool) {
|
||||
fyne.Do(func() {
|
||||
@@ -143,6 +144,16 @@ func (bp *BottomPanel) onSongChange(song mediaprovider.MediaItem, _ *mediaprovid
|
||||
})
|
||||
}
|
||||
|
||||
func (bp *BottomPanel) onRadioMetadataChange(radioName, title, artist string) {
|
||||
fyne.Do(func() {
|
||||
bp.NowPlaying.Update(&mediaprovider.Track{
|
||||
Title: title,
|
||||
ArtistNames: []string{artist},
|
||||
Album: radioName,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func (bp *BottomPanel) updateWaveformImg(img *backend.WaveformImage) {
|
||||
fyne.Do(func() {
|
||||
bp.Controls.UpdateWaveformImg(img)
|
||||
|
||||
@@ -109,6 +109,15 @@ func NewMainWindow(fyneApp fyne.App, appName, displayAppName, appVersion string,
|
||||
app.PlaybackManager.OnSongChange(func(item mediaprovider.MediaItem, _ *mediaprovider.Track) {
|
||||
fyne.Do(func() { m.UpdateOnTrackChange(item) })
|
||||
})
|
||||
app.PlaybackManager.OnRadioMetadataChange(func(radioName, title, artist string) {
|
||||
fyne.Do(func() {
|
||||
if title != "" {
|
||||
m.Window.SetTitle(fmt.Sprintf("%s – %s · %s", title, artist, res.DisplayName))
|
||||
} else {
|
||||
m.Window.SetTitle(fmt.Sprintf("%s · %s", radioName, res.DisplayName))
|
||||
}
|
||||
})
|
||||
})
|
||||
app.PlaybackManager.OnQueueChange(func() {
|
||||
fyne.Do(func() { m.Sidebar.SetQueueTracks(app.PlaybackManager.GetPlayQueue()) })
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user