diff --git a/aucat/sock.c b/aucat/sock.c index 92487a1..0e094ce 100644 --- a/aucat/sock.c +++ b/aucat/sock.c @@ -598,14 +598,6 @@ sock_attach(struct sock *f, int force) f->xrun, f->opt->maxweight); if (f->mode & MODE_PLAY) dev_setvol(f->dev, rbuf, MIDI_TO_ADATA(f->vol)); - - /* - * Send the initial position, if needed. - */ - for (;;) { - if (!sock_write(f)) - break; - } } void @@ -1421,24 +1413,6 @@ sock_execmsg(struct sock *f) aproc_del(f->pipe.file.rproc); return 0; } - if (f->rstate == SOCK_RRET) { - if (f->wstate != SOCK_WIDLE || - !sock_wmsg(f, &f->rmsg, &f->rtodo)) - return 0; -#ifdef DEBUG - if (debug_level >= 3) { - sock_dbg(f); - dbg_puts(": RRET done\n"); - } -#endif - if (f->pstate == SOCK_MIDI && (f->mode & MODE_MIDIOUT)) { - f->rstate = SOCK_RDATA; - f->rtodo = 0; - } else { - f->rstate = SOCK_RMSG; - f->rtodo = sizeof(struct amsg); - } - } return 1; } @@ -1625,6 +1599,13 @@ sock_read(struct sock *f) #endif return 0; } + for (;;) { + /* + * send pending ACKs, initial positions, initial volumes + */ + if (!sock_write(f)) + break; + } return 1; }