// 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 }