add autoplay UI toggle

This commit is contained in:
Drew Weymouth
2025-01-06 18:34:35 -08:00
parent 834d024735
commit 966e792f6f
10 changed files with 51 additions and 4 deletions
+1
View File
@@ -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()
+2
View File
@@ -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{
+12 -1
View File
@@ -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()
}