Skip to content
Snippets Groups Projects
Commit e2ba5a61 authored by ale's avatar ale
Browse files

reflect gompd API changes

parent 501e6d69
No related branches found
No related tags found
No related merge requests found
......@@ -17,9 +17,7 @@ func main() {
flag.Parse()
db := djmpd.NewDJRandomDatabase()
player := mpd.NewPortAudioPlayer()
db.SetupPlayRecorder(player)
m := mpd.NewMPD(player, db)
m := mpd.NewMPD(db, db.GetPlayRecorder())
m.HandleURL("djrandom", db)
log.Fatal(m.ListenAndServe(fmt.Sprintf(":%d", *port)))
}
......@@ -120,11 +120,12 @@ type songReader struct {
url string
pos, size int64
resp *http.Response
closed bool
}
func (r *songReader) Read(buf []byte) (int, error) {
var err error
for i := 0; i < 2; i++ {
for i := 0; !r.closed && i < 3; i++ {
if r.pos >= r.size {
return 0, io.EOF
}
......@@ -144,7 +145,6 @@ func (r *songReader) Read(buf []byte) (int, error) {
r.pos += int64(n)
return n, err
}
log.Printf("HTTP read error: %v", err)
r.resp.Body.Close()
r.resp = nil
}
......@@ -152,6 +152,7 @@ func (r *songReader) Read(buf []byte) (int, error) {
}
func (r *songReader) Close() error {
r.closed = true
if r.resp != nil {
r.resp.Body.Close()
}
......@@ -256,9 +257,8 @@ func (d *DJRandomDatabase) GetSong(songURL *url.URL) (mpd.Song, error) {
return newDJRandomSong(&resp, d.client), nil
}
func (d *DJRandomDatabase) SetupPlayRecorder(player mpd.Player) {
rec := newPlayRecorder(d.client)
player.SetSongPlayedCallback(rec.SongPlayed)
func (d *DJRandomDatabase) GetPlayRecorder() *PlayRecorder {
return newPlayRecorder(d.client)
}
type PlayRecorder struct {
......@@ -277,7 +277,7 @@ func newPlayRecorder(client *util.HttpClient) *PlayRecorder {
}
}
func (r *PlayRecorder) SongPlayed(song mpd.Song) {
func (r *PlayRecorder) Notify(song mpd.Song) {
s, ok := song.(*DJRandomSong)
if !ok {
return
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment