small refactor

This commit is contained in:
raziman 2020-06-21 23:47:12 +08:00
parent d73bcb66e4
commit 44b9903c0c
5 changed files with 30 additions and 23 deletions

View File

@ -4,16 +4,14 @@ import "github.com/rivo/tview"
func Layout(
app *tview.Application,
child1 *tview.TreeView,
child2 *tview.List,
child3 *tview.Box,
player *Player,
) *tview.Flex {
flex := tview.NewFlex().
AddItem(child1, 0, 1, false).
AddItem(player.tree, 0, 1, false).
AddItem(tview.NewFlex().SetDirection(tview.FlexRow).
AddItem(child2, 0, 7, false).
AddItem(child3, 0, 1, false), 0, 3, false)
AddItem(player.list, 0, 7, false).
AddItem(player.playingBar.frame, 0, 1, false), 0, 3, false)
return flex

View File

@ -15,14 +15,14 @@ type AudioFile struct {
Parent *tview.TreeNode
}
func Playlist(list *tview.List, player *Player) *tview.TreeView {
func Playlist(list *tview.List, playBar *Progress, player *Player) *tview.TreeView {
musicDir := "./music"
rootDir, err := filepath.Abs(musicDir)
if err != nil {
panic(err)
log(err.Error())
}
root := tview.NewTreeNode(musicDir)
@ -69,6 +69,7 @@ func Playlist(list *tview.List, player *Player) *tview.TreeView {
case 'l':
if audioFile.IsAudioFile {
list.AddItem(audioFile.Name, audioFile.Path, 0, nil)
player.Push(audioFile.Path)
@ -114,7 +115,7 @@ func populate(root *tview.TreeNode, rootPath string) {
files, err := ioutil.ReadDir(rootPath)
if err != nil {
panic(err)
log(err.Error())
}
for _, file := range files {

View File

@ -5,7 +5,7 @@ import (
"github.com/rivo/tview"
)
func Queue(playlist *tview.Box) *tview.List {
func Queue() *tview.List {
list := tview.NewList().
ShowSecondaryText(false)

View File

@ -19,15 +19,20 @@ func start(app *tview.Application) {
player := &Player{}
child3 := NowPlayingBar()
child2 := Queue(child3)
child1 := Playlist(child2, player)
child3 := PlayingBar(app)
child2 := Queue()
child1 := Playlist(child2, child3, player)
flex := Layout(app, child1, child2, child3)
player.tree = child1
player.list = child2
player.playingBar = child3
player.app = app
flex := Layout(app, player)
pages := tview.NewPages().AddPage("main", flex, true, true)
childrens := []Children{child1, child2, child3}
childrens := []Children{child1, child2, child3.frame}
app.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
@ -52,12 +57,15 @@ func start(app *tview.Application) {
})
case ' ':
if player.ctrl.Paused {
player.Play()
} else {
player.Pause()
}
player.TogglePause()
case '+':
player.Volume(0.5)
case '-':
player.Volume(-0.5)
}
@ -72,7 +80,7 @@ func start(app *tview.Application) {
// main loop
if err := app.SetRoot(pages, true).SetFocus(flex).Run(); err != nil {
panic(err)
log(err.Error())
}
}

View File

@ -10,7 +10,7 @@ func log(text string) {
panic(err)
}
if _, err := f.Write([]byte(text)); err != nil {
if _, err := f.Write([]byte(text + "\n")); err != nil {
panic(err)
}