Exemple #1
0
// 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
}