add multi-server functionality pt. 1 - add server

This commit is contained in:
Drew Weymouth
2023-05-17 15:03:31 -07:00
parent ff8c09d631
commit 85eb790cd1
4 changed files with 58 additions and 11 deletions
+1 -1
View File
@@ -60,7 +60,7 @@ func StartupApp(appName, appVersionTag, configFile, latestReleaseURL string) (*A
return nil, err
}
a.ServerManager = NewServerManager(appName)
a.ServerManager = NewServerManager(appName, a.Config)
a.PlaybackManager = NewPlaybackManager(a.bgrndCtx, a.ServerManager, a.Player, &a.Config.Scrobbling)
a.ImageManager = NewImageManager(a.bgrndCtx, a.ServerManager, configdir.LocalCache(a.appName))
a.ServerManager.SetPrefetchAlbumCoverCallback(func(coverID string) {
+6 -4
View File
@@ -20,14 +20,15 @@ type ServerManager struct {
prefetchCoverCB func(string)
appName string
config *Config
onServerConnected []func()
onLogout []func()
}
var ErrUnreachable = errors.New("server is unreachable")
func NewServerManager(appName string) *ServerManager {
return &ServerManager{appName: appName}
func NewServerManager(appName string, config *Config) *ServerManager {
return &ServerManager{appName: appName, config: config}
}
func (s *ServerManager) SetPrefetchAlbumCoverCallback(cb func(string)) {
@@ -46,6 +47,7 @@ func (s *ServerManager) ConnectToServer(conf *ServerConfig, password string) err
s.Server.SetPrefetchCoverCallback(s.prefetchCoverCB)
s.LoggedInUser = conf.Username
s.ServerID = conf.ID
s.config.SetDefaultServer(s.ServerID)
for _, cb := range s.onServerConnected {
cb()
}
@@ -144,8 +146,8 @@ func (s *ServerManager) OnLogout(cb func()) {
s.onLogout = append(s.onLogout, cb)
}
func (s *ServerManager) GetServerPassword(server *ServerConfig) (string, error) {
return keyring.Get(s.appName, server.ID.String())
func (s *ServerManager) GetServerPassword(serverID uuid.UUID) (string, error) {
return keyring.Get(s.appName, serverID.String())
}
func (s *ServerManager) SetServerPassword(server *ServerConfig, password string) error {