Ejemplo n.º 1
0
// getPlaylist stores other tracks from current playlist
func getPlaylist(conn *mpd.Client, s *Status) {
	var first, last int
	status, ror := conn.Status()
	er(ror)
	curPos, _ := strconv.Atoi(status["song"])
	if curPos > 19 {
		first = curPos - 20
	} else {
		first = 0
	}
	last = curPos + 20
	playlist, ror := conn.PlaylistInfo(first, last)
	er(ror)

	var listing = make([]NowList, len(playlist))
	for i := 0; i < len(playlist); i++ {
		item := playlist[i]
		iPos, _ := strconv.Atoi(item["Pos"])
		filepath := item["file"]
		t := item["title"]
		d := path.Dir(filepath)
		f := path.Base(filepath)
		if f == "." || f == "" {
			continue
		}
		if t != "" {
			if curPos == iPos {
				listing[i].Current = true
				listing[i].Album = item["album"]
			}
			listing[i].Artist = item["artist"]
			listing[i].Label = t
		} else {
			if curPos == iPos {
				listing[i].Current = true
				listing[i].Album = d
			}
			listing[i].Artist = item["artist"]
			listing[i].Label = f
		}
	}
	s.List = listing
}