Compare commits

..

1 Commits

Author SHA1 Message Date
1fbd6bce2d Crontab installation support 2018-10-24 13:56:50 -07:00

View File

@ -26,13 +26,10 @@ func (s *Sonar) Watch() {
if err := p.cmd.Wait(); err != nil { if err := p.cmd.Wait(); err != nil {
log.Error("Player.Watch: p.cmd.Wait: %s", err) log.Error("Player.Watch: p.cmd.Wait: %s", err)
} }
p.cmd = nil
// Next track? // Next track?
log.Info("Track ended, play next") log.Info("Track ended, play next")
if err := s.PlayNext(); err != nil { s.PlayNext()
log.Info("EOF: %s", err)
}
} }
time.Sleep(1 * time.Second) time.Sleep(1 * time.Second)
} }
@ -56,17 +53,15 @@ func (p *Player) Stop() error {
} }
p.cmd = nil p.cmd = nil
p.playlist = []string{}
p.index = 0 p.index = 0
return nil return nil
} }
// Next returns the next song. // Next returns the next song.
func (p *Player) Next() (string, bool) { func (p *Player) Next() (string, bool) {
if p.index < len(p.playlist) {
next := p.playlist[p.index]
p.index++ p.index++
return next, true if p.index < len(p.playlist) {
return p.playlist[p.index], true
} }
return "", false return "", false
} }
@ -80,18 +75,23 @@ func (p *Player) Status() string {
var ( var (
index = p.index index = p.index
length = len(p.playlist) length = len(p.playlist)
pct float64
) )
if length > 0 {
pct = float64(index / length)
}
parts = append(parts, fmt.Sprintf( parts = append(parts, fmt.Sprintf(
"Track %d of %d", "Track %d of %d (%.2f%%)",
index, index,
length, length,
pct,
)) ))
// Append current track. // Append current track.
if index <= len(p.playlist) { if index < len(p.playlist) {
parts = append(parts, fmt.Sprintf( parts = append(parts, fmt.Sprintf(
"Now playing: %s", "Now playing: %s",
p.playlist[index-1], p.playlist[index],
)) ))
} }
} else { } else {