make sure waveform shows up for track loaded paused when starting app
This commit is contained in:
@@ -115,14 +115,20 @@ func (p *PlaybackManager) addOnTrackChangeHook() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
p.engine.onBeforeSongChange = append(p.engine.onBeforeSongChange, func(item mediaprovider.MediaItem) {
|
p.engine.onBeforeSongChange = append(p.engine.onBeforeSongChange, func(item mediaprovider.MediaItem) {
|
||||||
if p.engine.playbackCfg.UseWaveformSeekbar {
|
if item == nil || !p.engine.playbackCfg.UseWaveformSeekbar {
|
||||||
if p.wfmGen != nil && item != nil && item.Metadata().Type == mediaprovider.MediaItemTypeTrack {
|
return
|
||||||
if _, ok := p.findWfmImageJob(item.Metadata().ID, true); !ok {
|
}
|
||||||
// start generating waveform image for next-up track
|
if p.wfmGen != nil && item.Metadata().Type == mediaprovider.MediaItemTypeTrack {
|
||||||
p.addWfmImageJob(p.wfmGen.StartWaveformGeneration(item.(*mediaprovider.Track)))
|
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) {
|
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)
|
p.cmdQueue.LoadTrackPaused(idx, startTime)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *PlaybackManager) isLoadTrackPaused() bool {
|
||||||
|
return p.engine.pendingLoadPaused
|
||||||
|
}
|
||||||
|
|
||||||
func (p *PlaybackManager) PlayRandomSongs(genreName string) error {
|
func (p *PlaybackManager) PlayRandomSongs(genreName string) error {
|
||||||
return p.fetchAndPlayTracks(func() ([]*mediaprovider.Track, error) {
|
return p.fetchAndPlayTracks(func() ([]*mediaprovider.Track, error) {
|
||||||
tr, err := p.engine.sm.Server.GetRandomTracks(genreName, p.appCfg.EnqueueBatchSize)
|
tr, err := p.engine.sm.Server.GetRandomTracks(genreName, p.appCfg.EnqueueBatchSize)
|
||||||
|
|||||||
Reference in New Issue
Block a user