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

reflect gompd API changes

parent 501e6d69
Branches
Tags v0.1.2
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