big refactor to prepare for removing server hard-coding

This commit is contained in:
Drew Weymouth
2022-12-19 19:28:19 -08:00
parent 8762fed9b3
commit 181554058a
9 changed files with 149 additions and 90 deletions
+28 -21
View File
@@ -3,28 +3,42 @@ package main
import (
"context"
"fmt"
"gomuse/backend"
"gomuse/player"
"gomuse/ui"
"log"
"net/http"
"supersonic/backend"
"supersonic/player"
"supersonic/ui"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/layout"
"github.com/20after4/configdir"
"github.com/dweymouth/go-subsonic"
)
const appname = "gomuse"
const (
appname = "supersonic"
configFile = "config.toml"
)
func main() {
ctx, cancel := context.WithCancel(context.Background())
cachePath := configdir.LocalCache(appname)
log.Println(cachePath)
p := player.NewWithClientName(appname)
fmt.Println(p.Init())
if err := p.Init(); err != nil {
log.Fatalf("failed to initialize mpv player: %s", err.Error())
}
myApp := app.New()
myWindow := myApp.NewWindow(appname)
b := ui.NewBottomPanel(p)
c := container.NewBorder(nil, b, nil, nil, &layout.Spacer{})
myWindow.SetContent(c)
myWindow.Resize(fyne.NewSize(1000, 800))
myWindow.Show()
s := &subsonic.Client{
Client: &http.Client{},
@@ -33,21 +47,16 @@ func main() {
ClientName: appname,
}
lm := backend.NewLibraryManager(s)
pm := backend.NewPlaybackManager(ctx, s, p)
im := backend.NewImageManager(s, configdir.LocalCache(appname, "covers"))
if err := s.Authenticate("***REMOVED***"); err != nil {
fmt.Printf("error authenticating: %v\n", err)
}
myApp := app.New()
myWindow := myApp.NewWindow(appname)
b := ui.NewBottomPanel(p, pm, im)
ag := ui.NewAlbumGrid(lm.RecentlyAddedIter(), pm, im)
c := container.NewBorder(nil, b, nil, nil, ag)
lm := backend.NewLibraryManager(s)
pm := backend.NewPlaybackManager(ctx, s, p)
im := backend.NewImageManager(s, configdir.LocalCache(appname, "covers"))
b.ImageManager = im
b.SetPlaybackManager(pm)
pm.OnSongChange(func(song *subsonic.Child) {
if song == nil {
myWindow.SetTitle("gomuse")
@@ -56,10 +65,8 @@ func main() {
myWindow.SetTitle(song.Title)
})
myWindow.SetContent(c)
myWindow.Resize(fyne.NewSize(1350, 1000))
myWindow.Show()
ag := ui.NewAlbumGrid(lm.RecentlyAddedIter(), pm, im)
myWindow.SetContent(container.NewBorder(nil, b, nil, nil, ag))
myApp.Run()
cancel()
p.Destroy()