chiark / gitweb /
Mention scripts/protocol in README.developers, and bring other bits a
[disorder] / lib / client-stubs.c
index de9e6cc05d50a45d48bd560864a4bc7955702d60..d0c3103989212e8fc0253e67f578dfbe0d72aded 100644 (file)
@@ -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,14 @@ 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_playlist_delete(disorder_client *c, const char *playlist) {
   return disorder_simple(c, 0, "playlist-delete", playlist, (char *)0);
 }
@@ -126,6 +155,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 +171,10 @@ int disorder_playlists(disorder_client *c, char ***playlistsp, int *nplaylistsp)
   return disorder_simple_list(c, playlistsp, nplaylistsp, "playlists", (char *)0);
 }
 
+int disorder_queue(disorder_client *c, struct queue_entry **queuep) {
+  return disorder_somequeue(c, "queue", queuep);
+}
+
 int disorder_random_disable(disorder_client *c) {
   return disorder_simple(c, 0, "random-disable", (char *)0);
 }
@@ -154,6 +191,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 disorder_somequeue(c, "recent", recentp);
+}
+
 int disorder_reconfigure(disorder_client *c) {
   return disorder_simple(c, 0, "reconfigure", (char *)0);
 }