add local provider, add cover output in textinfo

This commit is contained in:
Aynakeya
2022-07-07 20:30:12 -07:00
parent fd91b1e130
commit 7bf9372898
22 changed files with 301 additions and 76 deletions

View File

@@ -22,6 +22,10 @@ func (t *TestConfig) CreatePanel() fyne.CanvasObject {
}
func createConfigLayout() fyne.CanvasObject {
// initialize config panels
for _, c := range ConfigList {
c.CreatePanel()
}
content := container.NewMax()
entryList := widget.NewList(
func() int {

View File

@@ -29,6 +29,7 @@ func l() *logrus.Entry {
}
func Initialize() {
l().Info("Initializing GUI")
os.Setenv("FYNE_FONT", config.GetAssetPath("msyh.ttc"))
App = app.New()
MainWindow = App.NewWindow(fmt.Sprintf("AynaLivePlayer Ver.%s", config.VERSION))

View File

@@ -1,8 +1,12 @@
package gui
import (
"AynaLivePlayer/player"
"bytes"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/storage"
"fyne.io/fyne/v2/widget"
)
@@ -74,3 +78,19 @@ func newFixedSplitContainer(horizontal bool, leading, trailing fyne.CanvasObject
fs.Split.BaseWidget.ExtendBaseWidget(s)
return fs
}
func newImageFromPlayerPicture(picture player.Picture) (*canvas.Image, error) {
if picture.Data != nil {
return canvas.NewImageFromReader(bytes.NewReader(picture.Data), "cover"), nil
} else {
uri, err := storage.ParseURI(picture.Url)
if err != nil || uri == nil {
return nil, err
}
img := canvas.NewImageFromURI(uri)
if img == nil {
return nil, err
}
return img, err
}
}

View File

@@ -10,7 +10,6 @@ import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/storage"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/aynakeya/go-mpv"
@@ -195,24 +194,34 @@ func registerPlayControllerHandler() {
PlayController.Artist.SetText(
media.Artist)
PlayController.Username.SetText(media.ToUser().Name)
if media.Cover == "" {
if !media.Cover.Exists() {
PlayController.SetDefaultCover()
} else {
uri, err := storage.ParseURI(media.Cover)
if err != nil || uri == nil {
l().Warn("fail to load parse cover url", media.Cover)
}
// async update
go func() {
img := canvas.NewImageFromURI(uri)
if img == nil {
picture, err := newImageFromPlayerPicture(media.Cover)
if err != nil {
l().Warn("fail to load parse cover url", media.Cover)
PlayController.SetDefaultCover()
return
}
PlayController.Cover.Resource = img.Resource
PlayController.Cover.Resource = picture.Resource
PlayController.Cover.Refresh()
}()
//uri, err := storage.ParseURI(media.Cover)
//if err != nil || uri == nil {
// l().Warn("fail to load parse cover url", media.Cover)
//}
//// async update
//go func() {
// img := canvas.NewImageFromURI(uri)
// if img == nil {
// l().Warn("fail to load parse cover url", media.Cover)
// PlayController.SetDefaultCover()
// return
// }
// PlayController.Cover.Resource = img.Resource
// PlayController.Cover.Refresh()
//}()
}
})
return