add option to configure queue size
This commit is contained in:
+1
-1
@@ -119,7 +119,7 @@ func StartupApp(appName, displayAppName, appVersionTag, latestReleaseURL string)
|
|||||||
}
|
}
|
||||||
|
|
||||||
a.ServerManager = NewServerManager(appName, a.Config, !portableMode /*use keyring*/)
|
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.ImageManager = NewImageManager(a.bgrndCtx, a.ServerManager, cacheDir)
|
||||||
a.Config.Application.MaxImageCacheSizeMB = clamp(a.Config.Application.MaxImageCacheSizeMB, 1, 500)
|
a.Config.Application.MaxImageCacheSizeMB = clamp(a.Config.Application.MaxImageCacheSizeMB, 1, 500)
|
||||||
a.ImageManager.SetMaxOnDiskCacheSizeBytes(int64(a.Config.Application.MaxImageCacheSizeMB) * 1_048_576)
|
a.ImageManager.SetMaxOnDiskCacheSizeBytes(int64(a.Config.Application.MaxImageCacheSizeMB) * 1_048_576)
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ type AppConfig struct {
|
|||||||
ShowTrackChangeNotification bool
|
ShowTrackChangeNotification bool
|
||||||
EnableLrcLib bool
|
EnableLrcLib bool
|
||||||
SkipSSLVerify bool
|
SkipSSLVerify bool
|
||||||
|
EnqueueBatchSize int
|
||||||
|
|
||||||
// Experimental - may be removed in future
|
// Experimental - may be removed in future
|
||||||
FontNormalTTF string
|
FontNormalTTF string
|
||||||
@@ -173,6 +174,7 @@ func DefaultConfig(appVersionTag string) *Config {
|
|||||||
ShowTrackChangeNotification: false,
|
ShowTrackChangeNotification: false,
|
||||||
EnableLrcLib: true,
|
EnableLrcLib: true,
|
||||||
SkipSSLVerify: false,
|
SkipSSLVerify: false,
|
||||||
|
EnqueueBatchSize: 100,
|
||||||
},
|
},
|
||||||
AlbumPage: AlbumPageConfig{
|
AlbumPage: AlbumPageConfig{
|
||||||
TracklistColumns: []string{"Artist", "Time", "Plays", "Favorite", "Rating"},
|
TracklistColumns: []string{"Artist", "Time", "Plays", "Favorite", "Rating"},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import (
|
|||||||
type PlaybackManager struct {
|
type PlaybackManager struct {
|
||||||
engine *playbackEngine
|
engine *playbackEngine
|
||||||
cmdQueue *playbackCommandQueue
|
cmdQueue *playbackCommandQueue
|
||||||
|
cfg *AppConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewPlaybackManager(
|
func NewPlaybackManager(
|
||||||
@@ -22,12 +23,14 @@ func NewPlaybackManager(
|
|||||||
p player.BasePlayer,
|
p player.BasePlayer,
|
||||||
scrobbleCfg *ScrobbleConfig,
|
scrobbleCfg *ScrobbleConfig,
|
||||||
transcodeCfg *TranscodingConfig,
|
transcodeCfg *TranscodingConfig,
|
||||||
|
appCfg *AppConfig,
|
||||||
) *PlaybackManager {
|
) *PlaybackManager {
|
||||||
e := NewPlaybackEngine(ctx, s, p, scrobbleCfg, transcodeCfg)
|
e := NewPlaybackEngine(ctx, s, p, scrobbleCfg, transcodeCfg)
|
||||||
q := NewCommandQueue()
|
q := NewCommandQueue()
|
||||||
pm := &PlaybackManager{
|
pm := &PlaybackManager{
|
||||||
engine: e,
|
engine: e,
|
||||||
cmdQueue: q,
|
cmdQueue: q,
|
||||||
|
cfg: appCfg,
|
||||||
}
|
}
|
||||||
go pm.runCmdQueue(ctx)
|
go pm.runCmdQueue(ctx)
|
||||||
return pm
|
return pm
|
||||||
@@ -231,13 +234,13 @@ func (p *PlaybackManager) PlayTrackAt(idx int) {
|
|||||||
|
|
||||||
func (p *PlaybackManager) PlayRandomSongs(genreName string) {
|
func (p *PlaybackManager) PlayRandomSongs(genreName string) {
|
||||||
p.fetchAndPlayTracks(func() ([]*mediaprovider.Track, error) {
|
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) {
|
func (p *PlaybackManager) PlaySimilarSongs(id string) {
|
||||||
p.fetchAndPlayTracks(func() ([]*mediaprovider.Track, error) {
|
p.fetchAndPlayTracks(func() ([]*mediaprovider.Track, error) {
|
||||||
return p.engine.sm.Server.GetSimilarTracks(id, 100)
|
return p.engine.sm.Server.GetSimilarTracks(id, p.cfg.EnqueueBatchSize)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user