Merge pull request #490 from stkw0/main

add option to configure queue size
This commit is contained in:
Drew Weymouth
2024-10-01 12:50:28 -07:00
committed by GitHub
3 changed files with 8 additions and 3 deletions
+1 -1
View File
@@ -119,7 +119,7 @@ func StartupApp(appName, displayAppName, appVersionTag, latestReleaseURL string)
}
a.ServerManager = NewServerManager(appName, a.Config, !portableMode /*use keyring*/)
a.PlaybackManager = NewPlaybackManager(a.bgrndCtx, a.ServerManager, a.LocalPlayer, &a.Config.Scrobbling, &a.Config.Transcoding)
a.PlaybackManager = NewPlaybackManager(a.bgrndCtx, a.ServerManager, a.LocalPlayer, &a.Config.Scrobbling, &a.Config.Transcoding, &a.Config.Application)
a.ImageManager = NewImageManager(a.bgrndCtx, a.ServerManager, cacheDir)
a.Config.Application.MaxImageCacheSizeMB = clamp(a.Config.Application.MaxImageCacheSizeMB, 1, 500)
a.ImageManager.SetMaxOnDiskCacheSizeBytes(int64(a.Config.Application.MaxImageCacheSizeMB) * 1_048_576)
+2
View File
@@ -48,6 +48,7 @@ type AppConfig struct {
ShowTrackChangeNotification bool
EnableLrcLib bool
SkipSSLVerify bool
EnqueueBatchSize int
// Experimental - may be removed in future
FontNormalTTF string
@@ -173,6 +174,7 @@ func DefaultConfig(appVersionTag string) *Config {
ShowTrackChangeNotification: false,
EnableLrcLib: true,
SkipSSLVerify: false,
EnqueueBatchSize: 100,
},
AlbumPage: AlbumPageConfig{
TracklistColumns: []string{"Artist", "Time", "Plays", "Favorite", "Rating"},
+5 -2
View File
@@ -14,6 +14,7 @@ import (
type PlaybackManager struct {
engine *playbackEngine
cmdQueue *playbackCommandQueue
cfg *AppConfig
}
func NewPlaybackManager(
@@ -22,12 +23,14 @@ func NewPlaybackManager(
p player.BasePlayer,
scrobbleCfg *ScrobbleConfig,
transcodeCfg *TranscodingConfig,
appCfg *AppConfig,
) *PlaybackManager {
e := NewPlaybackEngine(ctx, s, p, scrobbleCfg, transcodeCfg)
q := NewCommandQueue()
pm := &PlaybackManager{
engine: e,
cmdQueue: q,
cfg: appCfg,
}
go pm.runCmdQueue(ctx)
return pm
@@ -231,13 +234,13 @@ func (p *PlaybackManager) PlayTrackAt(idx int) {
func (p *PlaybackManager) PlayRandomSongs(genreName string) {
p.fetchAndPlayTracks(func() ([]*mediaprovider.Track, error) {
return p.engine.sm.Server.GetRandomTracks(genreName, 100)
return p.engine.sm.Server.GetRandomTracks(genreName, p.cfg.EnqueueBatchSize)
})
}
func (p *PlaybackManager) PlaySimilarSongs(id string) {
p.fetchAndPlayTracks(func() ([]*mediaprovider.Track, error) {
return p.engine.sm.Server.GetSimilarTracks(id, 100)
return p.engine.sm.Server.GetSimilarTracks(id, p.cfg.EnqueueBatchSize)
})
}