add autoplay UI toggle
This commit is contained in:
@@ -361,6 +361,7 @@ func (a *App) Shutdown() {
|
||||
repeatMode = "All"
|
||||
}
|
||||
a.Config.Playback.RepeatMode = repeatMode
|
||||
a.Config.Playback.Autoplay = a.PlaybackManager.IsAutoplay()
|
||||
a.Config.LocalPlayback.Volume = a.LocalPlayer.GetVolume()
|
||||
a.SavePlayQueueIfEnabled()
|
||||
a.SaveConfigFile()
|
||||
|
||||
@@ -99,6 +99,7 @@ type NowPlayingPageConfig struct {
|
||||
}
|
||||
|
||||
type PlaybackConfig struct {
|
||||
Autoplay bool
|
||||
RepeatMode string
|
||||
}
|
||||
|
||||
@@ -215,6 +216,7 @@ func DefaultConfig(appVersionTag string) *Config {
|
||||
TracklistColumns: []string{"Album", "Time", "Plays"},
|
||||
},
|
||||
Playback: PlaybackConfig{
|
||||
Autoplay: false,
|
||||
RepeatMode: "None",
|
||||
},
|
||||
LocalPlayback: LocalPlaybackConfig{
|
||||
|
||||
@@ -42,7 +42,7 @@ func NewPlaybackManager(
|
||||
engine: e,
|
||||
cmdQueue: q,
|
||||
cfg: appCfg,
|
||||
autoplay: true, // TODO
|
||||
autoplay: playbackCfg.Autoplay,
|
||||
}
|
||||
pm.addOnTrackChangeHook()
|
||||
go pm.runCmdQueue(ctx)
|
||||
@@ -364,6 +364,10 @@ func (p *PlaybackManager) GetLoopMode() LoopMode {
|
||||
return p.engine.loopMode
|
||||
}
|
||||
|
||||
func (p *PlaybackManager) IsAutoplay() bool {
|
||||
return p.autoplay
|
||||
}
|
||||
|
||||
func (p *PlaybackManager) PlayerStatus() player.Status {
|
||||
return p.engine.PlayerStatus()
|
||||
}
|
||||
@@ -372,6 +376,13 @@ func (p *PlaybackManager) SetVolume(vol int) {
|
||||
p.cmdQueue.SetVolume(vol)
|
||||
}
|
||||
|
||||
func (p *PlaybackManager) SetAutoplay(autoplay bool) {
|
||||
p.autoplay = autoplay
|
||||
if autoplay && p.NowPlayingIndex() == len(p.engine.playQueue)-1 {
|
||||
p.enqueueAutoplayTracks()
|
||||
}
|
||||
}
|
||||
|
||||
func (p *PlaybackManager) Volume() int {
|
||||
return p.engine.CurrentPlayer().GetVolume()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user