-int disorder_exists(disorder_client *c, const char *track, int *existsp) {
- char *v;
-
- if(disorder_simple(c, &v, "exists", track, (char *)0)) return -1;
- return boolean("exists", v, existsp);
-}
-
-int disorder_enabled(disorder_client *c, int *enabledp) {
- char *v;
-
- if(disorder_simple(c, &v, "enabled", (char *)0)) return -1;
- return boolean("enabled", v, enabledp);
-}
-
-int disorder_length(disorder_client *c, const char *track,
- long *valuep) {
- char *value;
-
- if(disorder_simple(c, &value, "length", track, (char *)0)) return -1;
- *valuep = atol(value);
- return 0;
-}
-
-int disorder_search(disorder_client *c, const char *terms,
- char ***vecp, int *nvecp) {
- return disorder_simple_list(c, vecp, nvecp, "search", terms, (char *)0);
-}
-
-int disorder_random_enable(disorder_client *c) {
- return disorder_simple(c, 0, "random-enable", (char *)0);
-}
-
-int disorder_random_disable(disorder_client *c) {
- return disorder_simple(c, 0, "random-disable", (char *)0);
-}
-
-int disorder_random_enabled(disorder_client *c, int *enabledp) {
- char *v;
-
- if(disorder_simple(c, &v, "random-enabled", (char *)0)) return -1;
- return boolean("random-enabled", v, enabledp);
-}
-
-int disorder_stats(disorder_client *c,
- char ***vecp, int *nvecp) {
- return disorder_simple_list(c, vecp, nvecp, "stats", (char *)0);
-}
-
-int disorder_set_volume(disorder_client *c, int left, int right) {
- char *ls, *rs;
-
- if(byte_asprintf(&ls, "%d", left) < 0
- || byte_asprintf(&rs, "%d", right) < 0)
- return -1;
- if(disorder_simple(c, 0, "volume", ls, rs, (char *)0)) return -1;
- return 0;
-}
-
-int disorder_get_volume(disorder_client *c, int *left, int *right) {
- char *r;
-
- if(disorder_simple(c, &r, "volume", (char *)0)) return -1;
- if(sscanf(r, "%d %d", left, right) != 2) {
- error(0, "error parsing response to 'volume': '%s'", r);
- return -1;
- }
- return 0;
-}
-
-int disorder_log(disorder_client *c, struct sink *s) {
- char *l;
-
- if(disorder_simple(c, 0, "log", (char *)0)) return -1;
- while(inputline(c->ident, c->fpin, &l, '\n') >= 0 && strcmp(l, "."))
- if(sink_printf(s, "%s\n", l) < 0) return -1;
- if(ferror(c->fpin) || feof(c->fpin)) return -1;
- return 0;
-}
-
-int disorder_part(disorder_client *c, char **partp,
- const char *track, const char *context, const char *part) {
- return dequote(disorder_simple(c, partp, "part",
- track, context, part, (char *)0), partp);
-}
-
-int disorder_resolve(disorder_client *c, char **trackp, const char *track) {
- return dequote(disorder_simple(c, trackp, "resolve", track, (char *)0),
- trackp);
-}
-
-int disorder_pause(disorder_client *c) {
- return disorder_simple(c, 0, "pause", (char *)0);
-}
-
-int disorder_resume(disorder_client *c) {
- return disorder_simple(c, 0, "resume", (char *)0);
-}
-
-int disorder_tags(disorder_client *c,
- char ***vecp, int *nvecp) {
- return disorder_simple_list(c, vecp, nvecp, "tags", (char *)0);
-}
-
-int disorder_users(disorder_client *c,
- char ***vecp, int *nvecp) {
- return disorder_simple_list(c, vecp, nvecp, "users", (char *)0);
-}
-
-/** @brief Get recentl added tracks