X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/eea34c085e661c3315196e2e6f5bd73fab8fdbe0..7bef40aefd85afe68aef3ebd466e5e50ae3251a1:/lib/client-stubs.c diff --git a/lib/client-stubs.c b/lib/client-stubs.c index de9e6cc..1661a0c 100644 --- a/lib/client-stubs.c +++ b/lib/client-stubs.c @@ -94,10 +94,31 @@ int disorder_get_global(disorder_client *c, const char *pref, char **valuep) { return dequote(disorder_simple(c, valuep, "get-global", pref, (char *)0), valuep); } +int disorder_length(disorder_client *c, const char *track, long *lengthp) { + char *v; + int rc; + + if((rc = disorder_simple(c, &v, "length", track, (char *)0))) + return rc; + *lengthp = atol(v); + xfree(v); + return 0; +} + int disorder_make_cookie(disorder_client *c, char **cookiep) { return dequote(disorder_simple(c, cookiep, "make-cookie", (char *)0), cookiep); } +int disorder_move(disorder_client *c, const char *track, long delta) { + char buf_delta[16]; + byte_snprintf(buf_delta, sizeof buf_delta, "%ld", delta); + return disorder_simple(c, 0, "move", track, buf_delta, (char *)0); +} + +int disorder_moveafter(disorder_client *c, const char *target, char **ids, int nids) { + return disorder_simple(c, 0, "moveafter", target, disorder_list, ids, nids, (char *)0); +} + int disorder_nop(disorder_client *c) { return disorder_simple(c, 0, "nop", (char *)0); } @@ -110,6 +131,18 @@ int disorder_pause(disorder_client *c) { return disorder_simple(c, 0, "pause", (char *)0); } +int disorder_play(disorder_client *c, const char *track, char **idp) { + return dequote(disorder_simple(c, idp, "play", track, (char *)0), idp); +} + +int disorder_playafter(disorder_client *c, const char *target, char **tracks, int ntracks) { + return disorder_simple(c, 0, "playafter", target, disorder_list, tracks, ntracks, (char *)0); +} + +int disorder_playing(disorder_client *c, struct queue_entry **playingp) { + return onequeue(c, "playing", playingp); +} + int disorder_playlist_delete(disorder_client *c, const char *playlist) { return disorder_simple(c, 0, "playlist-delete", playlist, (char *)0); } @@ -126,6 +159,10 @@ int disorder_playlist_lock(disorder_client *c, const char *playlist) { return disorder_simple(c, 0, "playlist-lock", playlist, (char *)0); } +int disorder_playlist_set(disorder_client *c, const char *playlist, char **tracks, int ntracks) { + return disorder_simple(c, 0, "playlist-set", playlist, disorder_body, tracks, ntracks, (char *)0); +} + int disorder_playlist_set_share(disorder_client *c, const char *playlist, const char *share) { return disorder_simple(c, 0, "playlist-set-share", playlist, share, (char *)0); } @@ -138,6 +175,14 @@ int disorder_playlists(disorder_client *c, char ***playlistsp, int *nplaylistsp) return disorder_simple_list(c, playlistsp, nplaylistsp, "playlists", (char *)0); } +int disorder_prefs(disorder_client *c, const char *track, struct kvp **prefsp) { + return pairlist(c, prefsp, "prefs", track, (char *)0); +} + +int disorder_queue(disorder_client *c, struct queue_entry **queuep) { + return somequeue(c, "queue", queuep); +} + int disorder_random_disable(disorder_client *c) { return disorder_simple(c, 0, "random-disable", (char *)0); } @@ -154,6 +199,10 @@ int disorder_random_enabled(disorder_client *c, int *enabledp) { return boolean("random-enabled", v, enabledp); } +int disorder_recent(disorder_client *c, struct queue_entry **recentp) { + return somequeue(c, "recent", recentp); +} + int disorder_reconfigure(disorder_client *c) { return disorder_simple(c, 0, "reconfigure", (char *)0); } @@ -194,6 +243,10 @@ int disorder_schedule_del(disorder_client *c, const char *event) { return disorder_simple(c, 0, "schedule-del", event, (char *)0); } +int disorder_schedule_get(disorder_client *c, const char *id, struct kvp **actiondatap) { + return pairlist(c, actiondatap, "schedule-get", id, (char *)0); +} + int disorder_schedule_list(disorder_client *c, char ***idsp, int *nidsp) { return disorder_simple_list(c, idsp, nidsp, "schedule-list", (char *)0); }