diff options
author | Simon Garrelou <simon.garrelou@gmail.com> | 2022-12-09 15:21:04 +0100 |
---|---|---|
committer | Simon Garrelou <simon.garrelou@gmail.com> | 2022-12-09 15:21:04 +0100 |
commit | 9d1d1a02fde0a1561ad6a61e551a144bbeadc45b (patch) | |
tree | 7add9eb152c207e0e5cd3aaa6a3cd0b763f3ce4f /music/playqueue.go | |
parent | 84665faeac2e721698dcfdb40d13a3db65e76f80 (diff) | |
download | termsonic-9d1d1a02fde0a1561ad6a61e551a144bbeadc45b.tar.gz termsonic-9d1d1a02fde0a1561ad6a61e551a144bbeadc45b.zip |
Add play queue page
Diffstat (limited to 'music/playqueue.go')
-rw-r--r-- | music/playqueue.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/music/playqueue.go b/music/playqueue.go index 76d14df..fe82c4e 100644 --- a/music/playqueue.go +++ b/music/playqueue.go | |||
@@ -142,6 +142,23 @@ func (q *Queue) TogglePause() { | |||
142 | } | 142 | } |
143 | } | 143 | } |
144 | 144 | ||
145 | func (q *Queue) SkipTo(s *subsonic.Child) { | ||
146 | i := -1 | ||
147 | for n, s2 := range q.GetSongs() { | ||
148 | if s.ID == s2.ID { | ||
149 | i = n | ||
150 | break | ||
151 | } | ||
152 | } | ||
153 | |||
154 | if i == -1 { | ||
155 | return | ||
156 | } | ||
157 | |||
158 | q.songs = q.songs[i:] | ||
159 | q.Play() | ||
160 | } | ||
161 | |||
145 | func (p *Queue) setupSpeaker(s beep.Streamer, format beep.Format) (beep.Streamer, error) { | 162 | func (p *Queue) setupSpeaker(s beep.Streamer, format beep.Format) (beep.Streamer, error) { |
146 | if !p.speakerInitialized { | 163 | if !p.speakerInitialized { |
147 | err := speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10)) | 164 | err := speaker.Init(format.SampleRate, format.SampleRate.N(time.Second/10)) |