Added pause command
This commit is contained in:
parent
ea8c90502f
commit
bdefd6d2fb
@ -11,3 +11,13 @@ func newTrackChangeCmd(nextTrack track) tea.Cmd {
|
||||
return trackChangeMsg{nextTrack}
|
||||
}
|
||||
}
|
||||
|
||||
type trackPauseMsg struct {
|
||||
isPaused bool
|
||||
}
|
||||
|
||||
func newTrackPauseCmd(isPaused bool) tea.Cmd {
|
||||
return func() tea.Msg {
|
||||
return trackPauseMsg{isPaused}
|
||||
}
|
||||
}
|
||||
|
@ -61,6 +61,9 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
t := m.trackPlayerView.trackList.SelectedItem().(track)
|
||||
cmds = append(cmds, newTrackChangeCmd(t))
|
||||
m.trackPlayer.play(t.getReader())
|
||||
case " ":
|
||||
pauseState := m.TrackPlayer.TogglePause()
|
||||
cmds = append(cmds, newTrackPauseCmd(pauseState))
|
||||
}
|
||||
}
|
||||
var cmd tea.Cmd
|
||||
|
@ -21,6 +21,7 @@ var (
|
||||
)
|
||||
|
||||
type statusBar struct {
|
||||
isPaused bool
|
||||
currentTrack track
|
||||
}
|
||||
|
||||
@ -31,7 +32,13 @@ func (s statusBar) Init() tea.Cmd {
|
||||
func (s statusBar) View() string {
|
||||
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().
|
||||
Width(termWidth - w(statusKey)).
|
||||
Render(s.currentTrack.fullName())
|
||||
@ -48,6 +55,8 @@ func (s statusBar) Update(msg tea.Msg) (statusBar, tea.Cmd) {
|
||||
switch msg := msg.(type) {
|
||||
case trackChangeMsg:
|
||||
s.currentTrack = msg.nextTrack
|
||||
case trackPauseMsg:
|
||||
s.isPaused = msg.isPaused
|
||||
}
|
||||
|
||||
return s, nil
|
||||
|
Loading…
x
Reference in New Issue
Block a user