// dispatch control commands (vol, prev, next) func (h ControlHandler) command(w http.ResponseWriter, r *http.Request, controls player.Controls) (err error) { var data ControlCommand /* controls, err := player.NewMpdControls() if (err != nil) { return err } defer controls.Close() */ err = JsonRequestToType(w, r, &data) if err != nil { return err } log.Printf("Received control command '%s'\n", data.Command) switch data.Command { case "prev": err = controls.Prev() case "next": err = controls.Next() case "stop": err = controls.Stop() case "play": err = controls.Play() case "pause": err = controls.Pause() case "volumeDelta": err = controls.VolumeDelta(data.VolumeDelta) default: log.Printf("Unknown command: %s\n", data.Command) err = errors.New("Unknown command " + data.Command) } return err }