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( func Layout(
app *tview.Application, app *tview.Application,
child1 *tview.TreeView, player *Player,
child2 *tview.List,
child3 *tview.Box,
) *tview.Flex { ) *tview.Flex {
flex := tview.NewFlex(). flex := tview.NewFlex().
AddItem(child1, 0, 1, false). AddItem(player.tree, 0, 1, false).
AddItem(tview.NewFlex().SetDirection(tview.FlexRow). AddItem(tview.NewFlex().SetDirection(tview.FlexRow).
AddItem(child2, 0, 7, false). AddItem(player.list, 0, 7, false).
AddItem(child3, 0, 1, false), 0, 3, false) AddItem(player.playingBar.frame, 0, 1, false), 0, 3, false)
return flex return flex

View File

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

View File

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

View File

@ -19,15 +19,20 @@ func start(app *tview.Application) {
player := &Player{} player := &Player{}
child3 := NowPlayingBar() child3 := PlayingBar(app)
child2 := Queue(child3) child2 := Queue()
child1 := Playlist(child2, player) 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) 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 { app.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
@ -52,12 +57,15 @@ func start(app *tview.Application) {
}) })
case ' ': case ' ':
player.TogglePause()
if player.ctrl.Paused { case '+':
player.Play()
} else { player.Volume(0.5)
player.Pause()
} case '-':
player.Volume(-0.5)
} }
@ -72,7 +80,7 @@ func start(app *tview.Application) {
// main loop // main loop
if err := app.SetRoot(pages, true).SetFocus(flex).Run(); err != nil { 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) panic(err)
} }
if _, err := f.Write([]byte(text)); err != nil { if _, err := f.Write([]byte(text + "\n")); err != nil {
panic(err) panic(err)
} }