From bdefd6d2fb648bf947c41004aaf540844cbc7a64 Mon Sep 17 00:00:00 2001 From: strNophix Date: Mon, 21 Mar 2022 18:50:34 +0100 Subject: [PATCH] Added pause command --- pkg/commands.go | 10 ++++++++++ pkg/model.go | 3 +++ pkg/status_bar.go | 11 ++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/pkg/commands.go b/pkg/commands.go index 3243090..76218c2 100644 --- a/pkg/commands.go +++ b/pkg/commands.go @@ -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} + } +} diff --git a/pkg/model.go b/pkg/model.go index 9410d92..aeef547 100644 --- a/pkg/model.go +++ b/pkg/model.go @@ -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 diff --git a/pkg/status_bar.go b/pkg/status_bar.go index 4b7a337..efd1b7e 100644 --- a/pkg/status_bar.go +++ b/pkg/status_bar.go @@ -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