add config setting for save queue to server

This commit is contained in:
Drew Weymouth
2024-04-16 17:26:46 -07:00
parent 4d6626b7f2
commit 8eeb2aa53a
2 changed files with 13 additions and 3 deletions
+10 -2
View File
@@ -11,6 +11,7 @@ import (
"slices"
"time"
"github.com/dweymouth/supersonic/backend/mediaprovider"
"github.com/dweymouth/supersonic/backend/player"
"github.com/dweymouth/supersonic/backend/player/mpv"
"github.com/dweymouth/supersonic/backend/util"
@@ -305,7 +306,13 @@ func (a *App) Shutdown() {
a.MPRISHandler.Shutdown()
a.PlaybackManager.DisableCallbacks()
if a.Config.Application.SavePlayQueue {
SavePlayQueue(a.ServerManager.ServerID.String(), a.PlaybackManager, configdir.LocalConfig(a.appName, savedQueueFile), nil)
var queueServer mediaprovider.CanSavePlayQueue = nil
if a.Config.Application.SaveQueueToServer {
if qs, ok := a.ServerManager.Server.(mediaprovider.CanSavePlayQueue); ok {
queueServer = qs
}
}
SavePlayQueue(a.ServerManager.ServerID.String(), a.PlaybackManager, configdir.LocalConfig(a.appName, savedQueueFile), queueServer)
}
a.PlaybackManager.Stop() // will trigger scrobble check
a.Config.LocalPlayback.Volume = a.LocalPlayer.GetVolume()
@@ -316,7 +323,8 @@ func (a *App) Shutdown() {
}
func (a *App) LoadSavedPlayQueue() error {
queue, err := LoadPlayQueue(configdir.LocalConfig(a.appName, savedQueueFile), a.ServerManager, false)
queueFilePath := configdir.LocalConfig(a.appName, savedQueueFile)
queue, err := LoadPlayQueue(queueFilePath, a.ServerManager, a.Config.Application.SaveQueueToServer)
if err != nil {
return err
}
+3 -1
View File
@@ -42,6 +42,7 @@ type AppConfig struct {
AllowMultiInstance bool
MaxImageCacheSizeMB int
SavePlayQueue bool
SaveQueueToServer bool
DefaultPlaylistID string
ShowTrackChangeNotification bool
@@ -155,7 +156,8 @@ func DefaultConfig(appVersionTag string) *Config {
AllowMultiInstance: false,
MaxImageCacheSizeMB: 50,
UIScaleSize: "Normal",
SavePlayQueue: false,
SavePlayQueue: true,
SaveQueueToServer: false,
ShowTrackChangeNotification: false,
},
AlbumPage: AlbumPageConfig{