restart xfers when we get more tickets

This commit is contained in:
Alexandre Ratchov 2012-11-02 17:26:10 +01:00
parent fc38a92505
commit f2c1c70165
2 changed files with 7 additions and 4 deletions

View File

@ -31,7 +31,7 @@ extern unsigned int log_level;
/*
* MIDI buffer size
*/
#define MIDI_BUFSZ 3125 /* 1 second at 31.25kbit/s */
#define MIDI_BUFSZ 125 /* 1/25 second at 31.25kbit/s */
/*
* units used for MTC clock.

View File

@ -38,7 +38,7 @@
* input data rate is XFER / TIMO (in bytes per microsecond),
* it must be slightly larger than the MIDI standard 3125 bytes/s
*/
#define MIDI_XFER 340
#define MIDI_XFER 1
#define MIDI_TIMO 100000
int port_open(struct port *);
@ -82,8 +82,11 @@ midi_ontimo(void *arg)
int i;
struct midi *ep;
for (i = MIDI_NEP, ep = midi_ep; i > 0; i--, ep++)
for (i = MIDI_NEP, ep = midi_ep; i > 0; i--, ep++) {
ep->tickets = MIDI_XFER;
if (ep->ibuf.used > 0)
midi_in(ep);
}
timo_add(&midi_timo, MIDI_TIMO);
}
@ -251,7 +254,7 @@ midi_in(struct midi *ep)
idata = abuf_rgetblk(&ep->ibuf, &icount);
if (icount > ep->tickets)
icount = ep->tickets;
//ep->tickets -= icount;
ep->tickets -= icount;
#ifdef DEBUG
if (log_level >= 4) {
midi_log(ep);