X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/61b761862db3feb9bd0135a64ac3729f70917f89..e07418c450a80fd9c95c410844af55d23ee82cb2:/lib/eclient.c diff --git a/lib/eclient.c b/lib/eclient.c index 676aa06..5eda674 100644 --- a/lib/eclient.c +++ b/lib/eclient.c @@ -440,7 +440,7 @@ void disorder_eclient_polled(disorder_eclient *c, unsigned mode) { /* Queue up a byte to send */ if(c->state == state_log && c->output.nvec == 0 - && time(&now) - c->last_prod > LOG_PROD_INTERVAL) { + && xtime(&now) - c->last_prod > LOG_PROD_INTERVAL) { put(c, "x", 1); c->last_prod = now; } @@ -741,7 +741,7 @@ static void process_line(disorder_eclient *c, char *line) { && line[1] >= '0' && line[1] <= '9' && line[2] >= '0' && line[2] <= '9' && line[3] == ' ')) - fatal(0, "invalid response from server: %s", line); + disorder_fatal(0, "invalid response from server: %s", line); c->rc = (line[0] * 10 + line[1]) * 10 + line[2] - 111 * '0'; c->line = line; switch(c->rc % 10) { @@ -1132,6 +1132,28 @@ int disorder_eclient_play(disorder_eclient *c, "play", track, (char *)0); } +int disorder_eclient_playafter(disorder_eclient *c, + const char *target, + int ntracks, + const char **tracks, + disorder_eclient_no_response *completed, + void *v) { + struct vector vec; + int n; + + if(!target) + target = ""; + vector_init(&vec); + vector_append(&vec, (char *)"playafter"); + vector_append(&vec, (char *)target); + for(n = 0; n < ntracks; ++n) + vector_append(&vec, (char *)tracks[n]); + stash_command_vector(c, 0/*queuejump*/, no_response_opcallback, completed, v, + -1, 0, vec.nvec, vec.vec); + disorder_eclient_polled(c, 0); + return 0; +} + int disorder_eclient_pause(disorder_eclient *c, disorder_eclient_no_response *completed, void *v) {