version 1.59, 2011/05/02 22:32:29 |
version 1.60, 2011/06/03 16:22:34 |
|
|
sock_attach(struct sock *f, int force) |
sock_attach(struct sock *f, int force) |
{ |
{ |
struct abuf *rbuf, *wbuf; |
struct abuf *rbuf, *wbuf; |
|
unsigned rch, wch; |
|
|
rbuf = LIST_FIRST(&f->pipe.file.rproc->outs); |
rbuf = LIST_FIRST(&f->pipe.file.rproc->outs); |
wbuf = LIST_FIRST(&f->pipe.file.wproc->ins); |
wbuf = LIST_FIRST(&f->pipe.file.wproc->ins); |
|
|
* because dev_xxx() functions are supposed to |
* because dev_xxx() functions are supposed to |
* work (i.e., not to crash) |
* work (i.e., not to crash) |
*/ |
*/ |
|
if (f->opt->join) { |
|
rch = f->opt->rpar.cmax - f->opt->rpar.cmin + 1; |
|
wch = f->opt->wpar.cmax - f->opt->wpar.cmin + 1; |
|
} else |
|
rch = wch = 0; |
dev_attach(f->dev, f->pipe.file.name, f->mode, |
dev_attach(f->dev, f->pipe.file.name, f->mode, |
rbuf, &f->rpar, |
rbuf, &f->rpar, rch, wbuf, &f->wpar, wch, |
f->opt->join ? f->opt->rpar.cmax - f->opt->rpar.cmin + 1 : 0, |
|
wbuf, &f->wpar, |
|
f->opt->join ? f->opt->wpar.cmax - f->opt->wpar.cmin + 1 : 0, |
|
f->xrun, f->opt->maxweight); |
f->xrun, f->opt->maxweight); |
if (f->mode & MODE_PLAY) |
if (f->mode & MODE_PLAY) |
dev_setvol(f->dev, rbuf, MIDI_TO_ADATA(f->vol)); |
dev_setvol(f->dev, rbuf, MIDI_TO_ADATA(f->vol)); |