version 1.19, 2010/04/06 20:07:01 |
version 1.20, 2010/04/24 06:18:23 |
|
|
if (todo > ibuf->tickets) |
if (todo > ibuf->tickets) |
todo = ibuf->tickets; |
todo = ibuf->tickets; |
ibuf->tickets -= todo; |
ibuf->tickets -= todo; |
for (i = LIST_FIRST(&p->obuflist); i != NULL; i = inext) { |
for (i = LIST_FIRST(&p->outs); i != NULL; i = inext) { |
inext = LIST_NEXT(i, oent); |
inext = LIST_NEXT(i, oent); |
if (ibuf->duplex == i) |
if (ibuf->duplex == i) |
continue; |
continue; |
|
|
{ |
{ |
if (!(p->flags & APROC_QUIT)) |
if (!(p->flags & APROC_QUIT)) |
return; |
return; |
if (LIST_EMPTY(&p->ibuflist)) |
if (LIST_EMPTY(&p->ins)) |
aproc_del(p); |
aproc_del(p); |
} |
} |
|
|
|
|
|
|
timo_add(&p->u.thru.timo, MIDITHRU_TIMO); |
timo_add(&p->u.thru.timo, MIDITHRU_TIMO); |
|
|
for (i = LIST_FIRST(&p->ibuflist); i != NULL; i = inext) { |
for (i = LIST_FIRST(&p->ins); i != NULL; i = inext) { |
inext = LIST_NEXT(i, ient); |
inext = LIST_NEXT(i, ient); |
tickets = i->tickets; |
tickets = i->tickets; |
i->tickets = MIDITHRU_XFER; |
i->tickets = MIDITHRU_XFER; |
|
|
unsigned char *odata, *idata; |
unsigned char *odata, *idata; |
struct abuf *i, *inext; |
struct abuf *i, *inext; |
|
|
for (i = LIST_FIRST(&p->obuflist); i != NULL; i = inext) { |
for (i = LIST_FIRST(&p->outs); i != NULL; i = inext) { |
inext = LIST_NEXT(i, oent); |
inext = LIST_NEXT(i, oent); |
if (i->duplex && i->duplex == ibuf) |
if (i->duplex && i->duplex == ibuf) |
continue; |
continue; |
|
|
if (s->ops) |
if (s->ops) |
return; |
return; |
} |
} |
if (!LIST_EMPTY(&p->obuflist) || !LIST_EMPTY(&p->ibuflist)) |
if (!LIST_EMPTY(&p->outs) || !LIST_EMPTY(&p->ins)) |
aproc_del(p); |
aproc_del(p); |
} |
} |
|
|
|
|
if (s->ops) |
if (s->ops) |
return; |
return; |
} |
} |
if (!LIST_EMPTY(&p->obuflist) || !LIST_EMPTY(&p->ibuflist)) |
if (!LIST_EMPTY(&p->outs) || !LIST_EMPTY(&p->ins)) |
aproc_del(p); |
aproc_del(p); |
} |
} |
|
|
|
|
if (s->ops) |
if (s->ops) |
return; |
return; |
} |
} |
if (!LIST_EMPTY(&p->obuflist) || !LIST_EMPTY(&p->ibuflist)) |
if (!LIST_EMPTY(&p->outs) || !LIST_EMPTY(&p->ins)) |
aproc_del(p); |
aproc_del(p); |
} |
} |
|
|