make sure waveform shows up for track loaded paused when starting app

This commit is contained in:
Drew Weymouth
2026-02-21 10:17:20 -08:00
parent dba540861f
commit 6782e8d470
+16 -6
View File
@@ -115,14 +115,20 @@ func (p *PlaybackManager) addOnTrackChangeHook() {
})
p.engine.onBeforeSongChange = append(p.engine.onBeforeSongChange, func(item mediaprovider.MediaItem) {
if p.engine.playbackCfg.UseWaveformSeekbar {
if p.wfmGen != nil && item != nil && item.Metadata().Type == mediaprovider.MediaItemTypeTrack {
if _, ok := p.findWfmImageJob(item.Metadata().ID, true); !ok {
// start generating waveform image for next-up track
p.addWfmImageJob(p.wfmGen.StartWaveformGeneration(item.(*mediaprovider.Track)))
}
if item == nil || !p.engine.playbackCfg.UseWaveformSeekbar {
return
}
if p.wfmGen != nil && item.Metadata().Type == mediaprovider.MediaItemTypeTrack {
if _, ok := p.findWfmImageJob(item.Metadata().ID, true); !ok {
// start generating waveform image for next-up track
p.addWfmImageJob(p.wfmGen.StartWaveformGeneration(item.(*mediaprovider.Track)))
}
}
if p.isLoadTrackPaused() {
// we need to call handleWaveformImageSongChange to ensure the waveform image is updated
// for the track that is loaded paused when starting the app
p.handleWaveformImageSongChange(item)
}
})
p.OnSongChange(func(item mediaprovider.MediaItem, _ *mediaprovider.Track) {
@@ -517,6 +523,10 @@ func (p *PlaybackManager) LoadTrackPaused(idx int, startTime float64) {
p.cmdQueue.LoadTrackPaused(idx, startTime)
}
func (p *PlaybackManager) isLoadTrackPaused() bool {
return p.engine.pendingLoadPaused
}
func (p *PlaybackManager) PlayRandomSongs(genreName string) error {
return p.fetchAndPlayTracks(func() ([]*mediaprovider.Track, error) {
tr, err := p.engine.sm.Server.GetRandomTracks(genreName, p.appCfg.EnqueueBatchSize)