Added pause command

This commit is contained in:
strNophix 2022-03-21 18:50:34 +01:00
parent ea8c90502f
commit bdefd6d2fb
3 changed files with 23 additions and 1 deletions

View File

@ -11,3 +11,13 @@ func newTrackChangeCmd(nextTrack track) tea.Cmd {
return trackChangeMsg{nextTrack} return trackChangeMsg{nextTrack}
} }
} }
type trackPauseMsg struct {
isPaused bool
}
func newTrackPauseCmd(isPaused bool) tea.Cmd {
return func() tea.Msg {
return trackPauseMsg{isPaused}
}
}

View File

@ -61,6 +61,9 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
t := m.trackPlayerView.trackList.SelectedItem().(track) t := m.trackPlayerView.trackList.SelectedItem().(track)
cmds = append(cmds, newTrackChangeCmd(t)) cmds = append(cmds, newTrackChangeCmd(t))
m.trackPlayer.play(t.getReader()) m.trackPlayer.play(t.getReader())
case " ":
pauseState := m.TrackPlayer.TogglePause()
cmds = append(cmds, newTrackPauseCmd(pauseState))
} }
} }
var cmd tea.Cmd var cmd tea.Cmd

View File

@ -21,6 +21,7 @@ var (
) )
type statusBar struct { type statusBar struct {
isPaused bool
currentTrack track currentTrack track
} }
@ -31,7 +32,13 @@ func (s statusBar) Init() tea.Cmd {
func (s statusBar) View() string { func (s statusBar) View() string {
w := lipgloss.Width w := lipgloss.Width
statusKey := statusStyle.Render("NOW PLAYING") var statusKey string
if s.isPaused {
statusKey = statusStyle.Render("PAUSED")
} else {
statusKey = statusStyle.Render("NOW PLAYING")
}
statusVal := statusText.Copy(). statusVal := statusText.Copy().
Width(termWidth - w(statusKey)). Width(termWidth - w(statusKey)).
Render(s.currentTrack.fullName()) Render(s.currentTrack.fullName())
@ -48,6 +55,8 @@ func (s statusBar) Update(msg tea.Msg) (statusBar, tea.Cmd) {
switch msg := msg.(type) { switch msg := msg.(type) {
case trackChangeMsg: case trackChangeMsg:
s.currentTrack = msg.nextTrack s.currentTrack = msg.nextTrack
case trackPauseMsg:
s.isPaused = msg.isPaused
} }
return s, nil return s, nil