1#include "fns.h"2#include "mpc.h"34static mpc_parser_t *5mpd_next(void)6{7 return mpd_cmd_noarg("next");8}910mpdf_fold(pause, mpd_opt_arg(MPD_ARG_BOOL))1112static mpc_parser_t *13mpd_pause(void)14{15 /* TODO: usage without argument is deprecated */16 return mpc_and(2, mpdf_pause, mpc_string("pause"),17 mpc_maybe(mpd_argument(mpd_binary())), free);18}1920mpdf_fold(play, mpd_opt_arg(MPD_ARG_UINT))2122static mpc_parser_t *23mpd_play(void)24{25 return mpc_and(2, mpdf_play, mpc_string("play"),26 mpc_maybe(mpd_argument(mpd_uint())), free);27}2829mpdf_fold(playid, mpd_opt_arg(MPD_ARG_UINT))3031static mpc_parser_t *32mpd_playid(void)33{34 return mpc_and(2, mpdf_playid, mpc_string("playid"),35 mpc_maybe(mpd_argument(mpd_uint())), free);36}3738static mpc_parser_t *39mpd_previous(void)40{41 return mpd_cmd_noarg("previous");42}4344mpdf_fold(seek, MPD_ARG_UINT MPD_ARG_FLOAT)4546static mpc_parser_t *47mpd_seek(void)48{49 return mpc_and(3, mpdf_seek, mpc_string("seek"),50 mpd_argument(mpd_uint()), mpd_argument(mpd_float()),51 free, free);52}5354mpdf_fold(seekid, MPD_ARG_UINT MPD_ARG_FLOAT)5556static mpc_parser_t *57mpd_seekid(void)58{59 return mpc_and(3, mpdf_seekid, mpc_string("seekid"),60 mpd_argument(mpd_uint()), mpd_argument(mpd_float()),61 free, free);62}6364/* TODO: Implement seekcur, requires distinguishing +n and n */6566static mpc_parser_t *67mpd_stop(void)68{69 return mpd_cmd_noarg("stop");70}7172mpc_parser_t *73mpd_control_cmds(void)74{75 return mpc_or(8, mpd_next(), mpd_pause(), mpd_play(), mpd_playid(),76 mpd_previous(), mpd_seek(), mpd_seekid(), mpd_stop());77}